[{"data":1,"prerenderedAt":2420},["ShallowReactive",2],{"navigation_docs":3,"-tu-hoc-database-sql-server-gioi-thieu-cai-dat":420,"-tu-hoc-database-sql-server-gioi-thieu-cai-dat-surround":2415},[4,153],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Phỏng vấn .NET","i-lucide-briefcase","\u002Fphong-van","1.phong-van",[10,27,66,111,128],{"title":11,"icon":12,"path":13,"stem":14,"children":15,"page":26},"Tổng quan","i-lucide-compass","\u002Fphong-van\u002Ftong-quan","1.phong-van\u002F1.tong-quan",[16,21],{"title":17,"path":18,"stem":19,"icon":20},"Thị trường HCM","\u002Fphong-van\u002Ftong-quan\u002Fthi-truong","1.phong-van\u002F1.tong-quan\u002F1.thi-truong","i-lucide-trending-up",{"title":22,"path":23,"stem":24,"icon":25},"Lộ trình 7 ngày","\u002Fphong-van\u002Ftong-quan\u002Flo-trinh","1.phong-van\u002F1.tong-quan\u002F2.lo-trinh","i-lucide-calendar-days",false,{"title":22,"icon":25,"path":28,"stem":29,"children":30,"page":26},"\u002Fphong-van\u002Flo-trinh","1.phong-van\u002F2.lo-trinh",[31,36,41,46,51,56,61],{"title":32,"path":33,"stem":34,"icon":35},"Ngày 1 — C# cơ bản","\u002Fphong-van\u002Flo-trinh\u002Fngay-1-csharp-co-ban","1.phong-van\u002F2.lo-trinh\u002F1.ngay-1-csharp-co-ban","i-lucide-1",{"title":37,"path":38,"stem":39,"icon":40},"Ngày 2 — OOP và SOLID","\u002Fphong-van\u002Flo-trinh\u002Fngay-2-oop-solid","1.phong-van\u002F2.lo-trinh\u002F2.ngay-2-oop-solid","i-lucide-2",{"title":42,"path":43,"stem":44,"icon":45},"Ngày 3 — C# nâng cao","\u002Fphong-van\u002Flo-trinh\u002Fngay-3-csharp-nang-cao","1.phong-van\u002F2.lo-trinh\u002F3.ngay-3-csharp-nang-cao","i-lucide-3",{"title":47,"path":48,"stem":49,"icon":50},"Ngày 4 — Database và SQL","\u002Fphong-van\u002Flo-trinh\u002Fngay-4-database-sql","1.phong-van\u002F2.lo-trinh\u002F4.ngay-4-database-sql","i-lucide-4",{"title":52,"path":53,"stem":54,"icon":55},"Ngày 5 — ASP.NET Core và EF Core","\u002Fphong-van\u002Flo-trinh\u002Fngay-5-aspnet-efcore","1.phong-van\u002F2.lo-trinh\u002F5.ngay-5-aspnet-efcore","i-lucide-5",{"title":57,"path":58,"stem":59,"icon":60},"Ngày 6 — DSA coding","\u002Fphong-van\u002Flo-trinh\u002Fngay-6-dsa","1.phong-van\u002F2.lo-trinh\u002F6.ngay-6-dsa","i-lucide-6",{"title":62,"path":63,"stem":64,"icon":65},"Ngày 7 — Mock và HR","\u002Fphong-van\u002Flo-trinh\u002Fngay-7-mock-interview","1.phong-van\u002F2.lo-trinh\u002F7.ngay-7-mock-interview","i-lucide-7",{"title":67,"icon":68,"path":69,"stem":70,"children":71,"page":26},"Ngân hàng câu hỏi","i-lucide-database","\u002Fphong-van\u002Fngan-hang-cau-hoi","1.phong-van\u002F3.ngan-hang-cau-hoi",[72,77,82,87,92,97,102,107],{"title":73,"path":74,"stem":75,"icon":76},"C# (60+ câu)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fcsharp","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F1.csharp","i-lucide-hash",{"title":78,"path":79,"stem":80,"icon":81},"OOP và SOLID (40+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Foop","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F2.oop","i-lucide-shapes",{"title":83,"path":84,"stem":85,"icon":86},"SQL (40+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fsql","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F3.sql","i-lucide-database-zap",{"title":88,"path":89,"stem":90,"icon":91},"ASP.NET và EF (50+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Faspnet-ef","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F4.aspnet-ef","i-lucide-server",{"title":93,"path":94,"stem":95,"icon":96},"DSA và Coding (30+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fdsa-coding","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F5.dsa-coding","i-lucide-binary",{"title":98,"path":99,"stem":100,"icon":101},"HR và Soft skill (25+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fhr-behavior","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F6.hr-behavior","i-lucide-users",{"title":103,"path":104,"stem":105,"icon":106},"Design Pattern (55+)","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Fdesign-pattern","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F7.design-pattern","i-lucide-puzzle",{"title":108,"path":109,"stem":110,"icon":91},"ASP.NET MVC và Web API","\u002Fphong-van\u002Fngan-hang-cau-hoi\u002Faspnet-mvc-webapi","1.phong-van\u002F3.ngan-hang-cau-hoi\u002F8.aspnet-mvc-webapi",{"title":112,"itle":113,"icon":114,"path":115,"stem":116,"children":117,"page":26},"Tai Lieu","Tài liệu và Cheat sheet","i-lucide-book-marked","\u002Fphong-van\u002Ftai-lieu","1.phong-van\u002F4.tai-lieu",[118,123],{"title":119,"path":120,"stem":121,"icon":122},"Cheat Sheet","\u002Fphong-van\u002Ftai-lieu\u002Fcheatsheet","1.phong-van\u002F4.tai-lieu\u002F1.cheatsheet","i-lucide-clipboard-list",{"title":124,"path":125,"stem":126,"icon":127},"Nguồn tham khảo","\u002Fphong-van\u002Ftai-lieu\u002Fnguon","1.phong-van\u002F4.tai-lieu\u002F2.nguon","i-lucide-link",{"title":129,"icon":130,"path":131,"stem":132,"children":133,"page":26},"Phỏng vấn English","i-lucide-globe","\u002Fphong-van\u002Fenglish-interview","1.phong-van\u002F5.english-interview",[134,138,143,148],{"title":135,"path":136,"stem":137,"icon":130},"Tổng quan English","\u002Fphong-van\u002Fenglish-interview\u002Ftong-quan","1.phong-van\u002F5.english-interview\u002F1.tong-quan",{"title":139,"path":140,"stem":141,"icon":142},"Vocabulary","\u002Fphong-van\u002Fenglish-interview\u002Fvocabulary","1.phong-van\u002F5.english-interview\u002F2.vocabulary","i-lucide-book-a",{"title":144,"path":145,"stem":146,"icon":147},"Technical Q và A (EN)","\u002Fphong-van\u002Fenglish-interview\u002Ftechnical-en","1.phong-van\u002F5.english-interview\u002F3.technical-en","i-lucide-code",{"title":149,"path":150,"stem":151,"icon":152},"Behavioral (EN)","\u002Fphong-van\u002Fenglish-interview\u002Fbehavioral-en","1.phong-van\u002F5.english-interview\u002F4.behavioral-en","i-lucide-message-square-text",{"title":154,"icon":155,"path":156,"stem":157,"children":158},"Tự học","i-lucide-graduation-cap","\u002Ftu-hoc","2.tu-hoc",[159,161,287,310,333,357,384],{"title":154,"path":156,"stem":160,"icon":155},"2.tu-hoc\u002Findex",{"title":162,"icon":68,"path":163,"stem":164,"children":165},"Database","\u002Ftu-hoc\u002Fdatabase","2.tu-hoc\u002F1.database\u002Findex",[166,167,197,222,243,248],{"title":162,"path":163,"stem":164,"icon":68},{"title":168,"icon":91,"path":169,"stem":170,"children":171,"page":26},"SQL Server","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server","2.tu-hoc\u002F1.database\u002F2.sql-server",[172,177,182,187,192],{"title":173,"path":174,"stem":175,"icon":176},"1. Giới thiệu và Cài đặt","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F1.gioi-thieu-cai-dat","i-lucide-play-circle",{"title":178,"path":179,"stem":180,"icon":181},"2. Cú pháp cơ bản","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F2.cu-phap-co-ban","i-lucide-code-2",{"title":183,"path":184,"stem":185,"icon":186},"3. Truy vấn nâng cao","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F3.truy-van-nang-cao","i-lucide-git-merge",{"title":188,"path":189,"stem":190,"icon":191},"4. Đặc thù và Performance","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F4.dac-thu-performance","i-lucide-gauge",{"title":193,"path":194,"stem":195,"icon":196},"5. Q và A phỏng vấn","\u002Ftu-hoc\u002Fdatabase\u002Fsql-server\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F2.sql-server\u002F5.cau-hoi-phong-van","i-lucide-message-circle-question",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":26},"PostgreSQL","i-simple-icons-postgresql","\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql","2.tu-hoc\u002F1.database\u002F3.postgresql",[203,206,209,212,215,218],{"title":173,"path":204,"stem":205,"icon":176},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F1.gioi-thieu-cai-dat",{"title":178,"path":207,"stem":208,"icon":181},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F2.cu-phap-co-ban",{"title":183,"path":210,"stem":211,"icon":186},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F3.truy-van-nang-cao",{"title":188,"path":213,"stem":214,"icon":191},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F4.dac-thu-performance",{"title":193,"path":216,"stem":217,"icon":196},"\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F5.cau-hoi-phong-van",{"title":219,"path":220,"stem":221,"icon":96},"6. Tích hợp C# và Postgres","\u002Ftu-hoc\u002Fdatabase\u002Fpostgresql\u002Ftich-hop-csharp","2.tu-hoc\u002F1.database\u002F3.postgresql\u002F6.tich-hop-csharp",{"title":223,"icon":224,"path":225,"stem":226,"children":227,"page":26},"MySQL","i-simple-icons-mysql","\u002Ftu-hoc\u002Fdatabase\u002Fmysql","2.tu-hoc\u002F1.database\u002F4.mysql",[228,231,234,237,240],{"title":173,"path":229,"stem":230,"icon":176},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F1.database\u002F4.mysql\u002F1.gioi-thieu-cai-dat",{"title":178,"path":232,"stem":233,"icon":181},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fcu-phap-co-ban","2.tu-hoc\u002F1.database\u002F4.mysql\u002F2.cu-phap-co-ban",{"title":183,"path":235,"stem":236,"icon":186},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Ftruy-van-nang-cao","2.tu-hoc\u002F1.database\u002F4.mysql\u002F3.truy-van-nang-cao",{"title":188,"path":238,"stem":239,"icon":191},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fdac-thu-performance","2.tu-hoc\u002F1.database\u002F4.mysql\u002F4.dac-thu-performance",{"title":193,"path":241,"stem":242,"icon":196},"\u002Ftu-hoc\u002Fdatabase\u002Fmysql\u002Fcau-hoi-phong-van","2.tu-hoc\u002F1.database\u002F4.mysql\u002F5.cau-hoi-phong-van",{"title":244,"path":245,"stem":246,"icon":247},"So sánh 3 RDBMS","\u002Ftu-hoc\u002Fdatabase\u002Fso-sanh","2.tu-hoc\u002F1.database\u002F5.so-sanh","i-lucide-columns-3",{"title":249,"path":250,"stem":251,"children":252,"icon":254},"Supabase (BaaS)","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase","2.tu-hoc\u002F1.database\u002F6.supabase\u002Findex",[253,255,259,264,269,274,278,283],{"title":249,"path":250,"stem":251,"icon":254},"i-simple-icons-supabase",{"title":256,"path":257,"stem":258,"icon":68},"1. Database","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fdatabase","2.tu-hoc\u002F1.database\u002F6.supabase\u002F1.database",{"title":260,"path":261,"stem":262,"icon":263},"2. Authentication","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fauthentication","2.tu-hoc\u002F1.database\u002F6.supabase\u002F2.authentication","i-lucide-key",{"title":265,"path":266,"stem":267,"icon":268},"3. Storage & Realtime","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fstorage-realtime","2.tu-hoc\u002F1.database\u002F6.supabase\u002F3.storage-realtime","i-lucide-zap",{"title":270,"path":271,"stem":272,"icon":273},"4. Edge Functions & AI","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Ffunctions-ai","2.tu-hoc\u002F1.database\u002F6.supabase\u002F4.functions-ai","i-lucide-brain",{"title":275,"path":276,"stem":277,"icon":181},"5. API & SDKs","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fapi-sdk","2.tu-hoc\u002F1.database\u002F6.supabase\u002F5.api-sdk",{"title":279,"path":280,"stem":281,"icon":282},"6. Platform & Deploy","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Fplatform-deploy","2.tu-hoc\u002F1.database\u002F6.supabase\u002F6.platform-deploy","i-lucide-cloud",{"title":284,"path":285,"stem":286,"icon":196},"7. Interview & Q&A","\u002Ftu-hoc\u002Fdatabase\u002Fsupabase\u002Finterview","2.tu-hoc\u002F1.database\u002F6.supabase\u002F7.interview",{"title":288,"icon":289,"path":290,"stem":291,"children":292},"TypeScript","i-simple-icons-typescript","\u002Ftu-hoc\u002Ftypescript","2.tu-hoc\u002F2.typescript\u002Findex",[293,294,297,301,306],{"title":288,"path":290,"stem":291,"icon":289},{"title":173,"path":295,"stem":296,"icon":176},"\u002Ftu-hoc\u002Ftypescript\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F2.typescript\u002F1.gioi-thieu-cai-dat",{"title":298,"path":299,"stem":300,"icon":81},"2. Type System","\u002Ftu-hoc\u002Ftypescript\u002Ftype-system","2.tu-hoc\u002F2.typescript\u002F2.type-system",{"title":302,"path":303,"stem":304,"icon":305},"3. Advanced types","\u002Ftu-hoc\u002Ftypescript\u002Fadvanced-types","2.tu-hoc\u002F2.typescript\u002F3.advanced-types","i-lucide-braces",{"title":307,"path":308,"stem":309,"icon":196},"4. Q và A phỏng vấn","\u002Ftu-hoc\u002Ftypescript\u002Fcau-hoi-phong-van","2.tu-hoc\u002F2.typescript\u002F4.cau-hoi-phong-van",{"title":311,"icon":81,"path":312,"stem":313,"children":314},"OOP","\u002Ftu-hoc\u002Foop","2.tu-hoc\u002F3.oop\u002Findex",[315,316,321,326,330],{"title":311,"path":312,"stem":313,"icon":81},{"title":317,"path":318,"stem":319,"icon":320},"1. Bốn tính chất","\u002Ftu-hoc\u002Foop\u002F4-tinh-chat","2.tu-hoc\u002F3.oop\u002F1.4-tinh-chat","i-lucide-circle-dot",{"title":322,"path":323,"stem":324,"icon":325},"2. SOLID","\u002Ftu-hoc\u002Foop\u002Fsolid","2.tu-hoc\u002F3.oop\u002F2.solid","i-lucide-shield",{"title":327,"path":328,"stem":329,"icon":106},"3. Design Pattern","\u002Ftu-hoc\u002Foop\u002Fdesign-pattern","2.tu-hoc\u002F3.oop\u002F3.design-pattern",{"title":307,"path":331,"stem":332,"icon":196},"\u002Ftu-hoc\u002Foop\u002Fcau-hoi-phong-van","2.tu-hoc\u002F3.oop\u002F4.cau-hoi-phong-van",{"title":334,"icon":305,"path":335,"stem":336,"children":337},"Generic","\u002Ftu-hoc\u002Fgeneric","2.tu-hoc\u002F4.generic\u002Findex",[338,339,344,349,354],{"title":334,"path":335,"stem":336,"icon":305},{"title":340,"path":341,"stem":342,"icon":343},"1. Khái niệm và cú pháp","\u002Ftu-hoc\u002Fgeneric\u002Fkhai-niem","2.tu-hoc\u002F4.generic\u002F1.khai-niem","i-lucide-book",{"title":345,"path":346,"stem":347,"icon":348},"2. Constraint và Variance","\u002Ftu-hoc\u002Fgeneric\u002Fconstraint-variance","2.tu-hoc\u002F4.generic\u002F2.constraint-variance","i-lucide-filter",{"title":350,"path":351,"stem":352,"icon":353},"3. C# vs TS","\u002Ftu-hoc\u002Fgeneric\u002Fso-sanh","2.tu-hoc\u002F4.generic\u002F3.so-sanh","i-lucide-git-compare",{"title":307,"path":355,"stem":356,"icon":196},"\u002Ftu-hoc\u002Fgeneric\u002Fcau-hoi-phong-van","2.tu-hoc\u002F4.generic\u002F4.cau-hoi-phong-van",{"title":358,"icon":359,"path":360,"stem":361,"children":362},"Nuxt 4","i-simple-icons-nuxt","\u002Ftu-hoc\u002Fnuxt-4","2.tu-hoc\u002F5.nuxt-4\u002Findex",[363,364,367,372,376,379],{"title":358,"path":360,"stem":361,"icon":359},{"title":173,"path":365,"stem":366,"icon":176},"\u002Ftu-hoc\u002Fnuxt-4\u002Fgioi-thieu-cai-dat","2.tu-hoc\u002F5.nuxt-4\u002F1.gioi-thieu-cai-dat",{"title":368,"path":369,"stem":370,"icon":371},"2. Routing và Rendering","\u002Ftu-hoc\u002Fnuxt-4\u002Frouting-rendering","2.tu-hoc\u002F5.nuxt-4\u002F2.routing-rendering","i-lucide-route",{"title":373,"path":374,"stem":375,"icon":91},"3. Data và Server","\u002Ftu-hoc\u002Fnuxt-4\u002Fdata-server","2.tu-hoc\u002F5.nuxt-4\u002F3.data-server",{"title":307,"path":377,"stem":378,"icon":196},"\u002Ftu-hoc\u002Fnuxt-4\u002Fcau-hoi-phong-van","2.tu-hoc\u002F5.nuxt-4\u002F4.cau-hoi-phong-van",{"title":380,"path":381,"stem":382,"icon":383},"5. Practical Todo App","\u002Ftu-hoc\u002Fnuxt-4\u002Fpractical-todo-app","2.tu-hoc\u002F5.nuxt-4\u002F5.practical-todo-app","i-lucide-check-square",{"title":385,"path":386,"stem":387,"children":388,"icon":390},"Tailwind CSS","\u002Ftu-hoc\u002Ftailwindcss","2.tu-hoc\u002F6.tailwindcss\u002Findex",[389,391,396,401,406,411,416],{"title":385,"path":386,"stem":387,"icon":390},"i-simple-icons-tailwindcss",{"title":392,"path":393,"stem":394,"icon":395},"1. Layout & Spacing","\u002Ftu-hoc\u002Ftailwindcss\u002Flayout-spacing","2.tu-hoc\u002F6.tailwindcss\u002F1.layout-spacing","i-lucide-layout",{"title":397,"path":398,"stem":399,"icon":400},"2. Typography & Colors","\u002Ftu-hoc\u002Ftailwindcss\u002Ftypography-colors","2.tu-hoc\u002F6.tailwindcss\u002F2.typography-colors","i-lucide-type",{"title":402,"path":403,"stem":404,"icon":405},"3. Interactive & Effects","\u002Ftu-hoc\u002Ftailwindcss\u002Finteractive-effects","2.tu-hoc\u002F6.tailwindcss\u002F3.interactive-effects","i-lucide-sparkles",{"title":407,"path":408,"stem":409,"icon":410},"4. Responsive & Dark Mode","\u002Ftu-hoc\u002Ftailwindcss\u002Fresponsive-darkmode","2.tu-hoc\u002F6.tailwindcss\u002F4.responsive-darkmode","i-lucide-monitor-smartphone",{"title":412,"path":413,"stem":414,"icon":415},"5. Customization & Theme","\u002Ftu-hoc\u002Ftailwindcss\u002Fcustomization","2.tu-hoc\u002F6.tailwindcss\u002F5.customization","i-lucide-settings-2",{"title":417,"path":418,"stem":419,"icon":181},"6. Practical Projects","\u002Ftu-hoc\u002Ftailwindcss\u002Fpractical-projects","2.tu-hoc\u002F6.tailwindcss\u002F6.practical-projects",{"id":421,"title":422,"body":423,"description":2408,"extension":2409,"links":2410,"meta":2411,"navigation":2412,"path":174,"seo":2413,"stem":175,"__hash__":2414},"docs\u002F2.tu-hoc\u002F1.database\u002F2.sql-server\u002F1.gioi-thieu-cai-dat.md","Giới thiệu và Cài đặt SQL Server 2025",{"type":424,"value":425,"toc":2381},"minimark",[426,431,452,457,636,658,662,808,826,834,838,842,845,944,955,961,977,981,1096,1141,1145,1311,1337,1447,1451,1455,1551,1570,1574,1577,1585,1592,1618,1622,1698,1743,1747,1751,1760,1764,1779,1783,1821,1876,1880,1965,1969,1973,2092,2096,2143,2147,2196,2202,2206,2332,2369,2377],[427,428,430],"h2",{"id":429},"_1-sql-server-2025-bản-mới-nhất","1. SQL Server 2025 — bản mới nhất",[432,433,434,435,439,440,443,444,447,448,451],"p",{},"Microsoft SQL Server 2025 (internal version ",[436,437,438],"strong",{},"17.x",") là bản RTM chính thức — phát hành ngày ",[436,441,442],{},"18\u002F11\u002F2025",". Đây là bước nhảy lớn nhất kể từ SQL Server 2019, với AI-ready engine, native JSON, RegEx, và hàng loạt cải tiến performance. Bản ",[436,445,446],{},"CU2"," (Cumulative Update 2) ra ngày ",[436,449,450],{},"13\u002F02\u002F2026",".",[453,454,456],"h3",{"id":455},"điểm-mới-đáng-chú-ý","Điểm mới đáng chú ý",[458,459,460,499,524,566,593,613],"card-group",{},[461,462,465,466,470,471,474,475,478,479,482,483,486,487,490,491,494,495,498],"card",{"icon":463,"title":464},"i-lucide-bot","AI-ready & Vector Search","Kiểu dữ liệu ",[467,468,469],"code",{},"VECTOR(n)"," native — hỗ trợ đến ",[436,472,473],{},"2000 chiều"," (OpenAI embeddings 1536 dims vừa khít). ",[467,476,477],{},"VECTOR_DISTANCE"," với 4 metric: cosine, Euclidean, Manhattan, dot product. ",[467,480,481],{},"VECTOR_SEARCH"," cho similarity search top-K. ",[436,484,485],{},"DiskANN index"," — index trên SSD, nhanh millisecond, tiết kiệm ",[436,488,489],{},"90% bộ nhớ"," so với HNSW. Full RAG ngay trong database engine: ",[467,492,493],{},"sp_invoke_external_rest_endpoint"," gọi OpenAI \u002F Qwen \u002F bất kỳ REST API nào từ T-SQL, ",[467,496,497],{},"CREATE EXTERNAL MODEL"," đăng ký model AI như database object.",[461,500,503,504,507,508,507,511,507,514,507,517,507,520,523],{"icon":501,"title":502},"i-lucide-regex","Native RegEx (Google RE2)","Trước phải dùng CLR function. Giờ 6 hàm built-in: ",[467,505,506],{},"REGEXP_LIKE",", ",[467,509,510],{},"REGEXP_REPLACE",[467,512,513],{},"REGEXP_SUBSTR",[467,515,516],{},"REGEXP_INSTR",[467,518,519],{},"REGEXP_COUNT",[467,521,522],{},"REGEXP_SPLIT_TO_TABLE",". Engine Google RE2 — an toàn, không bị catastrophic backtracking như PCRE.",[461,525,527,528,531,532,535,536,539,540,543,544,547,548,551,552,507,555,507,558,561,562,565],{"icon":305,"title":526},"Native JSON — first-class type","Kiểu ",[467,529,530],{},"JSON"," thực sự (không còn là ",[467,533,534],{},"NVARCHAR(MAX)"," nữa). ",[436,537,538],{},"Binary storage"," — tiết kiệm ",[436,541,542],{},"50% dung lượng",". Hỗ trợ JSON document đến ",[436,545,546],{},"2GB",". In-place partial update qua ",[467,549,550],{},".modify()",". Hàm mới: ",[467,553,554],{},"JSON_ARRAYAGG()",[467,556,557],{},"JSON_OBJECTAGG()",[467,559,560],{},"JSON_CONTAINS()",". ",[436,563,564],{},"JSON Index"," trên path cụ thể — không cần computed column + index như trước.",[461,567,569,572,573,576,577,580,581,584,585,588,589,592],{"icon":268,"title":568},"Smart Performance Engine",[436,570,571],{},"Optimized Locking",": chỉ lock row-level, không lock escalation. ",[436,574,575],{},"LAQ"," (Lock After Qualification): lọc trước — lock sau. ",[436,578,579],{},"PSPO"," (Parameter Sensitive Plan Optimization): cache nhiều plan cho cùng một query theo parameter khác nhau. ",[436,582,583],{},"OPPO"," (Optional Parameter Plan Optimization): tự chọn plan tối ưu theo runtime value. ",[436,586,587],{},"Batch Mode"," cho built-in functions (ABS, SIN, DATE_TRUNC) — nhanh hơn ~70% với CPU-bound workload. ",[436,590,591],{},"ZSTD backup compression"," — nén nhanh và nhỏ hơn.",[461,594,596,597,600,601,604,605,608,609,612],{"icon":405,"title":595},"GitHub Copilot trong SSMS 22","Copilot GA ngày ",[436,598,599],{},"11\u002F11\u002F2025"," — natural language → T-SQL, lệnh ",[467,602,603],{},"\u002Ffix"," sửa lỗi query, ",[467,606,607],{},"\u002Fexplain"," giải thích execution plan, ",[467,610,611],{},"\u002Fdoc"," sinh documentation. SSMS 22.2.1 (tháng 1\u002F2026) có autocompletion ngữ cảnh database — gợi ý column, table, join thông minh. Azure Data Studio đang bị khai tử, phát triển dồn về SSMS 22 + VS Code extension.",[461,614,617,620,621,561,624,627,628,631,632,635],{"icon":615,"title":616},"i-lucide-gem","Editions nâng cấp mạnh",[436,618,619],{},"Express Edition: 50GB"," (từ 10GB) — gấp 5 lần, bao gồm tất cả tính năng mới. ",[436,622,623],{},"Standard Edition: 32 CPU cores, 256GB memory",[436,625,626],{},"Standard Developer Edition"," mới — khớp production Standard hơn khi dev. ",[436,629,630],{},"Web Edition bị loại bỏ"," (dừng SPLA). ",[436,633,634],{},"Không tăng giá"," ít nhất đến 2027. Power BI Report Server tích hợp sẵn trong mọi edition (trừ Express).",[637,638,641,642,645,646,650,653,654,657],"callout",{"color":639,"icon":640},"primary","i-lucide-star","⭐ ",[436,643,644],{},"Câu phỏng vấn:"," ",[647,648,649],"em",{},"\"DiskANN index khác gì so với HNSW?\"",[651,652],"br",{},"\nDiskANN lưu index trên ",[436,655,656],{},"SSD"," thay vì RAM — tiết kiệm ~90% bộ nhớ, vẫn truy vấn millisecond. Phù hợp khi vector dataset lớn (hàng trăm triệu vector) không thể nhét vừa RAM. HNSW (Hierarchical Navigable Small World) vẫn nhanh hơn ở dataset nhỏ nằm hoàn toàn trong RAM.",[453,659,661],{"id":660},"các-editions","Các editions",[663,664,665,687],"table",{},[666,667,668],"thead",{},[669,670,671,675,678,681,684],"tr",{},[672,673,674],"th",{},"Edition",[672,676,677],{},"CPU",[672,679,680],{},"RAM",[672,682,683],{},"DB Size",[672,685,686],{},"Dùng cho",[688,689,690,712,737,759,775,791],"tbody",{},[669,691,692,698,701,703,705],{},[693,694,695],"td",{},[436,696,697],{},"Developer",[693,699,700],{},"Không giới hạn",[693,702,700],{},[693,704,700],{},[693,706,707,708,711],{},"Dev cá nhân — ",[436,709,710],{},"miễn phí",", đầy đủ feature như Enterprise. Không dùng production.",[669,713,714,719,722,725,730],{},[693,715,716],{},[436,717,718],{},"Express",[693,720,721],{},"4 cores \u002F 1 socket",[693,723,724],{},"2 GB",[693,726,727],{},[436,728,729],{},"50 GB",[693,731,732,733,736],{},"Free, học tập, app nhỏ. ",[436,734,735],{},"2025: 50GB"," (x5 so với trước), gồm tất cả feature mới.",[669,738,739,744,747,750,753],{},[693,740,741],{},[436,742,743],{},"Standard Developer",[693,745,746],{},"32 cores",[693,748,749],{},"256 GB",[693,751,752],{},"524 PB",[693,754,755,756],{},"Dev-to-prod matching với Standard. ",[436,757,758],{},"Mới từ 2025.",[669,760,761,766,768,770,772],{},[693,762,763],{},[436,764,765],{},"Standard",[693,767,746],{},[693,769,749],{},[693,771,752],{},[693,773,774],{},"SME, production vừa và nhỏ.",[669,776,777,782,784,786,788],{},[693,778,779],{},[436,780,781],{},"Enterprise",[693,783,700],{},[693,785,700],{},[693,787,700],{},[693,789,790],{},"Production lớn. Có Always On AG, columnstore, partitioning đầy đủ.",[669,792,793,798,801,803,805],{},[693,794,795],{},[436,796,797],{},"Azure SQL",[693,799,800],{},"Managed",[693,802,800],{},[693,804,800],{},[693,806,807],{},"Managed cloud (PaaS).",[637,809,811,814,815,818,819,822,823,825],{"color":639,"icon":810},"i-lucide-info",[436,812,813],{},"Học thì dùng gì?"," → ",[436,816,817],{},"Developer Edition"," (miễn phí, full feature) chạy local hoặc qua Docker. Trước đây Express 10GB hơi chật — giờ Express ",[436,820,821],{},"50GB"," thoải mái cho hầu hết project cá nhân, nhưng vẫn thiếu một số Enterprise feature (Always On AG, partitioning). Nếu cần dev giống production Standard → dùng ",[436,824,626],{}," mới.",[637,827,830,833],{"color":828,"icon":829},"warning","i-lucide-alert-triangle",[436,831,832],{},"Web Edition đã bị loại bỏ"," trong SQL Server 2025. Nếu đang chạy Web Edition trên phiên bản cũ, cần migrate lên Standard hoặc Azure SQL khi nâng cấp.",[427,835,837],{"id":836},"_2-cài-đặt-3-cách","2. Cài đặt — 3 cách",[453,839,841],{"id":840},"cách-1-khuyên-dùng-docker","Cách 1 (khuyên dùng) — Docker",[432,843,844],{},"Nhanh, gọn, dễ xoá. Image chính thức của Microsoft chạy được cả Windows \u002F macOS \u002F Linux:",[846,847,852],"pre",{"className":848,"code":849,"language":850,"meta":851,"style":851},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker run -e \"ACCEPT_EULA=Y\" \\\n           -e \"MSSQL_SA_PASSWORD=YourStrong!Passw0rd\" \\\n           -e \"MSSQL_PID=Developer\" \\\n           -p 1433:1433 \\\n           --name sql2025 \\\n           -d mcr.microsoft.com\u002Fmssql\u002Fserver:2025-latest\n","bash","",[467,853,854,884,899,913,924,935],{"__ignoreMap":851},[855,856,859,863,867,870,874,877,880],"span",{"class":857,"line":858},"line",1,[855,860,862],{"class":861},"sBMFI","docker",[855,864,866],{"class":865},"sfazB"," run",[855,868,869],{"class":865}," -e",[855,871,873],{"class":872},"sMK4o"," \"",[855,875,876],{"class":865},"ACCEPT_EULA=Y",[855,878,879],{"class":872},"\"",[855,881,883],{"class":882},"sTEyZ"," \\\n",[855,885,887,890,892,895,897],{"class":857,"line":886},2,[855,888,889],{"class":865},"           -e",[855,891,873],{"class":872},[855,893,894],{"class":865},"MSSQL_SA_PASSWORD=YourStrong!Passw0rd",[855,896,879],{"class":872},[855,898,883],{"class":882},[855,900,902,904,906,909,911],{"class":857,"line":901},3,[855,903,889],{"class":865},[855,905,873],{"class":872},[855,907,908],{"class":865},"MSSQL_PID=Developer",[855,910,879],{"class":872},[855,912,883],{"class":882},[855,914,916,919,922],{"class":857,"line":915},4,[855,917,918],{"class":865},"           -p",[855,920,921],{"class":865}," 1433:1433",[855,923,883],{"class":882},[855,925,927,930,933],{"class":857,"line":926},5,[855,928,929],{"class":865},"           --name",[855,931,932],{"class":865}," sql2025",[855,934,883],{"class":882},[855,936,938,941],{"class":857,"line":937},6,[855,939,940],{"class":865},"           -d",[855,942,943],{"class":865}," mcr.microsoft.com\u002Fmssql\u002Fserver:2025-latest\n",[432,945,946,947,950,951,954],{},"Kết nối: ",[467,948,949],{},"localhost,1433"," user ",[467,952,953],{},"sa",", password ở trên.",[637,956,957,960],{"color":828,"icon":829},[436,958,959],{},"Password phải mạnh"," — ít nhất 8 ký tự, có chữ hoa\u002Fthường\u002Fsố\u002Fđặc biệt. Nếu yếu, container sẽ exit ngay.",[637,962,963,966,967,969,970,973,974,976],{"color":639,"icon":810},[436,964,965],{},"Dùng Express Edition qua Docker:"," thay ",[467,968,908],{}," thành ",[467,971,972],{},"MSSQL_PID=Express",". Express Edition 2025 hỗ trợ đến ",[436,975,821],{}," — thoải mái cho môi trường dev.",[453,978,980],{"id":979},"docker-linux-container","Docker Linux container",[846,982,984],{"className":848,"code":983,"language":850,"meta":851,"style":851},"# SQL Server 2025 trên Linux container — nhẹ, nhanh, dễ CI\u002FCD\ndocker run -e \"ACCEPT_EULA=Y\" \\\n           -e \"MSSQL_SA_PASSWORD=YourStrong!Passw0rd\" \\\n           -e \"MSSQL_PID=Developer\" \\\n           -e \"MSSQL_COLLATION=SQL_Latin1_General_CP1_CI_AS\" \\\n           -p 1433:1433 \\\n           --name sql2025 \\\n           --memory=4g \\\n           --cpus=4 \\\n           -v sqldata:\u002Fvar\u002Fopt\u002Fmssql \\\n           -d mcr.microsoft.com\u002Fmssql\u002Fserver:2025-latest\n",[467,985,986,992,1008,1020,1032,1045,1053,1062,1070,1078,1089],{"__ignoreMap":851},[855,987,988],{"class":857,"line":858},[855,989,991],{"class":990},"sHwdD","# SQL Server 2025 trên Linux container — nhẹ, nhanh, dễ CI\u002FCD\n",[855,993,994,996,998,1000,1002,1004,1006],{"class":857,"line":886},[855,995,862],{"class":861},[855,997,866],{"class":865},[855,999,869],{"class":865},[855,1001,873],{"class":872},[855,1003,876],{"class":865},[855,1005,879],{"class":872},[855,1007,883],{"class":882},[855,1009,1010,1012,1014,1016,1018],{"class":857,"line":901},[855,1011,889],{"class":865},[855,1013,873],{"class":872},[855,1015,894],{"class":865},[855,1017,879],{"class":872},[855,1019,883],{"class":882},[855,1021,1022,1024,1026,1028,1030],{"class":857,"line":915},[855,1023,889],{"class":865},[855,1025,873],{"class":872},[855,1027,908],{"class":865},[855,1029,879],{"class":872},[855,1031,883],{"class":882},[855,1033,1034,1036,1038,1041,1043],{"class":857,"line":926},[855,1035,889],{"class":865},[855,1037,873],{"class":872},[855,1039,1040],{"class":865},"MSSQL_COLLATION=SQL_Latin1_General_CP1_CI_AS",[855,1042,879],{"class":872},[855,1044,883],{"class":882},[855,1046,1047,1049,1051],{"class":857,"line":937},[855,1048,918],{"class":865},[855,1050,921],{"class":865},[855,1052,883],{"class":882},[855,1054,1056,1058,1060],{"class":857,"line":1055},7,[855,1057,929],{"class":865},[855,1059,932],{"class":865},[855,1061,883],{"class":882},[855,1063,1065,1068],{"class":857,"line":1064},8,[855,1066,1067],{"class":865},"           --memory=4g",[855,1069,883],{"class":882},[855,1071,1073,1076],{"class":857,"line":1072},9,[855,1074,1075],{"class":865},"           --cpus=4",[855,1077,883],{"class":882},[855,1079,1081,1084,1087],{"class":857,"line":1080},10,[855,1082,1083],{"class":865},"           -v",[855,1085,1086],{"class":865}," sqldata:\u002Fvar\u002Fopt\u002Fmssql",[855,1088,883],{"class":882},[855,1090,1092,1094],{"class":857,"line":1091},11,[855,1093,940],{"class":865},[855,1095,943],{"class":865},[637,1097,1098,1103],{"color":639,"icon":810},[432,1099,1100],{},[436,1101,1102],{},"Lưu ý quan trọng cho Linux container:",[1104,1105,1106,1118,1125,1131,1134],"ul",{},[1107,1108,1109,1110,1113,1114,1117],"li",{},"Dùng ",[467,1111,1112],{},"--memory"," và ",[467,1115,1116],{},"--cpus"," để giới hạn resource — mặc định SQL Server dùng toàn bộ RAM\u002FCPU của host.",[1107,1119,1120,1121,1124],{},"Volume mount (",[467,1122,1123],{},"-v",") để data tồn tại sau khi xoá container.",[1107,1126,1127,1130],{},[467,1128,1129],{},"MSSQL_COLLATION"," nên set ngay lúc tạo — không đổi được sau.",[1107,1132,1133],{},"Linux container không hỗ trợ Windows Authentication (chỉ dùng SQL Auth).",[1107,1135,1136,1137,1140],{},"SQL Server Agent bị tắt mặc định trên Linux — bật bằng ",[467,1138,1139],{},"docker exec sql2025 \u002Fopt\u002Fmssql\u002Fbin\u002Fmssql-conf set sqlagent.enabled true"," rồi restart.",[453,1142,1144],{"id":1143},"azure-sql-database","Azure SQL Database",[846,1146,1148],{"className":848,"code":1147,"language":850,"meta":851,"style":851},"# Tạo bằng Azure CLI\naz sql server create --name my-sqlserver \\\n    --resource-group my-rg \\\n    --location southeastasia \\\n    --admin-user sqladmin \\\n    --admin-password \"StrongPass123!\"\n\naz sql db create --resource-group my-rg \\\n    --server my-sqlserver \\\n    --name mydb \\\n    --service-objective S0 \\\n    --compute-model Serverless \\\n    --min-capacity 0.5 --max-capacity 2 \\\n    --auto-pause-delay 60\n",[467,1149,1150,1155,1177,1187,1197,1207,1220,1226,1244,1253,1263,1273,1284,1302],{"__ignoreMap":851},[855,1151,1152],{"class":857,"line":858},[855,1153,1154],{"class":990},"# Tạo bằng Azure CLI\n",[855,1156,1157,1160,1163,1166,1169,1172,1175],{"class":857,"line":886},[855,1158,1159],{"class":861},"az",[855,1161,1162],{"class":865}," sql",[855,1164,1165],{"class":865}," server",[855,1167,1168],{"class":865}," create",[855,1170,1171],{"class":865}," --name",[855,1173,1174],{"class":865}," my-sqlserver",[855,1176,883],{"class":882},[855,1178,1179,1182,1185],{"class":857,"line":901},[855,1180,1181],{"class":865},"    --resource-group",[855,1183,1184],{"class":865}," my-rg",[855,1186,883],{"class":882},[855,1188,1189,1192,1195],{"class":857,"line":915},[855,1190,1191],{"class":865},"    --location",[855,1193,1194],{"class":865}," southeastasia",[855,1196,883],{"class":882},[855,1198,1199,1202,1205],{"class":857,"line":926},[855,1200,1201],{"class":865},"    --admin-user",[855,1203,1204],{"class":865}," sqladmin",[855,1206,883],{"class":882},[855,1208,1209,1212,1214,1217],{"class":857,"line":937},[855,1210,1211],{"class":865},"    --admin-password",[855,1213,873],{"class":872},[855,1215,1216],{"class":865},"StrongPass123!",[855,1218,1219],{"class":872},"\"\n",[855,1221,1222],{"class":857,"line":1055},[855,1223,1225],{"emptyLinePlaceholder":1224},true,"\n",[855,1227,1228,1230,1232,1235,1237,1240,1242],{"class":857,"line":1064},[855,1229,1159],{"class":861},[855,1231,1162],{"class":865},[855,1233,1234],{"class":865}," db",[855,1236,1168],{"class":865},[855,1238,1239],{"class":865}," --resource-group",[855,1241,1184],{"class":865},[855,1243,883],{"class":882},[855,1245,1246,1249,1251],{"class":857,"line":1072},[855,1247,1248],{"class":865},"    --server",[855,1250,1174],{"class":865},[855,1252,883],{"class":882},[855,1254,1255,1258,1261],{"class":857,"line":1080},[855,1256,1257],{"class":865},"    --name",[855,1259,1260],{"class":865}," mydb",[855,1262,883],{"class":882},[855,1264,1265,1268,1271],{"class":857,"line":1091},[855,1266,1267],{"class":865},"    --service-objective",[855,1269,1270],{"class":865}," S0",[855,1272,883],{"class":882},[855,1274,1276,1279,1282],{"class":857,"line":1275},12,[855,1277,1278],{"class":865},"    --compute-model",[855,1280,1281],{"class":865}," Serverless",[855,1283,883],{"class":882},[855,1285,1287,1290,1294,1297,1300],{"class":857,"line":1286},13,[855,1288,1289],{"class":865},"    --min-capacity",[855,1291,1293],{"class":1292},"sbssI"," 0.5",[855,1295,1296],{"class":865}," --max-capacity",[855,1298,1299],{"class":1292}," 2",[855,1301,883],{"class":882},[855,1303,1305,1308],{"class":857,"line":1304},14,[855,1306,1307],{"class":865},"    --auto-pause-delay",[855,1309,1310],{"class":1292}," 60\n",[637,1312,1313,1318],{"color":828,"icon":268},[432,1314,1315],{},[436,1316,1317],{},"Khi nào dùng Azure SQL vs Docker on-prem?",[1104,1319,1320,1325,1331],{},[1107,1321,1322,1324],{},[436,1323,797],{},": auto-scale, serverless (tự pause khi không dùng → rẻ), HA built-in, backup 35 ngày tự động. Tốt cho production web app.",[1107,1326,1327,1330],{},[436,1328,1329],{},"Docker on-prem",": full control, dev\u002Ftest, offline OK, Enterprise feature đầy đủ (Always On AG, partitioning...).",[1107,1332,1333,1336],{},[436,1334,1335],{},"Hybrid",": production → Azure SQL, dev\u002Flocal → Docker container, CI\u002FCD → Docker trong pipeline.",[663,1338,1339,1351],{},[666,1340,1341],{},[669,1342,1343,1346,1349],{},[672,1344,1345],{},"Tiêu chí",[672,1347,1348],{},"Docker Linux Container",[672,1350,1144],{},[688,1352,1353,1369,1382,1395,1408,1421,1434],{},[669,1354,1355,1360,1366],{},[693,1356,1357],{},[436,1358,1359],{},"Setup",[693,1361,1362,1363],{},"1 dòng ",[467,1364,1365],{},"docker run",[693,1367,1368],{},"Azure Portal \u002F CLI",[669,1370,1371,1376,1379],{},[693,1372,1373],{},[436,1374,1375],{},"Chi phí",[693,1377,1378],{},"Free (chỉ trả VM\u002FDocker host)",[693,1380,1381],{},"Pay-as-you-go, serverless rẻ hơn",[669,1383,1384,1389,1392],{},[693,1385,1386],{},[436,1387,1388],{},"HA\u002FDR",[693,1390,1391],{},"Tự setup Always On AG",[693,1393,1394],{},"Built-in, 99.995% SLA",[669,1396,1397,1402,1405],{},[693,1398,1399],{},[436,1400,1401],{},"Backup",[693,1403,1404],{},"Tự quản lý",[693,1406,1407],{},"7-35 ngày automatic",[669,1409,1410,1415,1418],{},[693,1411,1412],{},[436,1413,1414],{},"Enterprise feature",[693,1416,1417],{},"Đầy đủ (Developer Edition)",[693,1419,1420],{},"Hạn chế (theo tier)",[669,1422,1423,1428,1431],{},[693,1424,1425],{},[436,1426,1427],{},"Elastic scale",[693,1429,1430],{},"Không",[693,1432,1433],{},"Hyperscale lên đến 100TB",[669,1435,1436,1441,1444],{},[693,1437,1438],{},[436,1439,1440],{},"Copilot AI",[693,1442,1443],{},"Cần SSMS 22 connect vào",[693,1445,1446],{},"Tích hợp Azure AI",[453,1448,1450],{"id":1449},"cách-3-installer-trực-tiếp-trên-windows","Cách 3 — Installer trực tiếp trên Windows",[427,1452,1454],{"id":1453},"_3-tool-quản-lý","3. Tool quản lý",[663,1456,1457,1470],{},[666,1458,1459],{},[669,1460,1461,1464,1467],{},[672,1462,1463],{},"Tool",[672,1465,1466],{},"Platform",[672,1468,1469],{},"Ưu điểm",[688,1471,1472,1497,1510,1527,1539],{},[669,1473,1474,1480,1483],{},[693,1475,1476,1479],{},[436,1477,1478],{},"SSMS 22"," (SQL Server Management Studio)",[693,1481,1482],{},"Windows only",[693,1484,1485,1486,1489,1490,507,1492,507,1494,1496],{},"Chính chủ Microsoft, mạnh nhất, miễn phí. ",[436,1487,1488],{},"Có GitHub Copilot tích hợp"," — natural language → T-SQL, ",[467,1491,603],{},[467,1493,607],{},[467,1495,611],{},". Mặc định cho dev .NET.",[669,1498,1499,1504,1507],{},[693,1500,1501],{},[436,1502,1503],{},"VS Code + mssql extension",[693,1505,1506],{},"All",[693,1508,1509],{},"Light, nhanh. Microsoft đang đầu tư mạnh thay cho Azure Data Studio.",[669,1511,1512,1517,1520],{},[693,1513,1514],{},[436,1515,1516],{},"Azure Data Studio",[693,1518,1519],{},"Win\u002FMac\u002FLinux",[693,1521,1522,1523,1526],{},"Đang bị ",[436,1524,1525],{},"phase out"," — tính năng dần chuyển sang SSMS 22 và VS Code extension. Vẫn dùng được nhưng không còn được đầu tư phát triển.",[669,1528,1529,1534,1536],{},[693,1530,1531],{},[436,1532,1533],{},"DBeaver",[693,1535,1506],{},[693,1537,1538],{},"Free, đa DB, query plan visual.",[669,1540,1541,1546,1548],{},[693,1542,1543],{},[436,1544,1545],{},"JetBrains DataGrip",[693,1547,1506],{},[693,1549,1550],{},"Trả phí, smart nhất, đa DB.",[637,1552,641,1553,645,1555,1558,1560,1561,1563,1564,1566,1567,1569],{"color":639,"icon":640},[436,1554,644],{},[647,1556,1557],{},"\"Bạn đã dùng tool gì để quản lý SQL Server?\"",[651,1559],{},"\nĐáp ngắn: ",[436,1562,1478],{}," cho dev mạnh (có Copilot AI hỗ trợ viết\u002Fsửa SQL), ",[436,1565,1503],{}," cho cross-platform. Nói thêm bạn đã đọc execution plan qua SSMS và từng dùng Copilot ",[467,1568,607],{}," để hiểu plan phức tạp.",[427,1571,1573],{"id":1572},"_4-kết-nối-lần-đầu","4. Kết nối lần đầu",[432,1575,1576],{},"Mở SSMS \u002F Azure Data Studio:",[846,1578,1583],{"className":1579,"code":1581,"language":1582},[1580],"language-text","Server: localhost  (hoặc localhost,1433 nếu cổng khác)\nAuth:   SQL Server Authentication\nLogin:  sa\nPwd:    [password đã set]\n","text",[467,1584,1581],{"__ignoreMap":851},[432,1586,1587,1588,1591],{},"Mở ",[436,1589,1590],{},"New Query"," và chạy:",[846,1593,1597],{"className":1594,"code":1595,"language":1596,"meta":851,"style":851},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT @@VERSION;\n-- Microsoft SQL Server 2025 (RTM) - 17.x.x ...\n\nSELECT @@SERVERNAME, DB_NAME(), SUSER_SNAME();\n","sql",[467,1598,1599,1604,1609,1613],{"__ignoreMap":851},[855,1600,1601],{"class":857,"line":858},[855,1602,1603],{},"SELECT @@VERSION;\n",[855,1605,1606],{"class":857,"line":886},[855,1607,1608],{},"-- Microsoft SQL Server 2025 (RTM) - 17.x.x ...\n",[855,1610,1611],{"class":857,"line":901},[855,1612,1225],{"emptyLinePlaceholder":1224},[855,1614,1615],{"class":857,"line":915},[855,1616,1617],{},"SELECT @@SERVERNAME, DB_NAME(), SUSER_SNAME();\n",[427,1619,1621],{"id":1620},"_5-tạo-database-đầu-tiên","5. Tạo database đầu tiên",[846,1623,1625],{"className":1594,"code":1624,"language":1596,"meta":851,"style":851},"CREATE DATABASE LearnSqlServer;\nGO\n\nUSE LearnSqlServer;\nGO\n\nCREATE TABLE Greetings (\n    Id   INT IDENTITY PRIMARY KEY,\n    Text NVARCHAR(200) NOT NULL,\n    CreatedAt DATETIME2 DEFAULT SYSUTCDATETIME()\n);\n\nINSERT INTO Greetings (Text) VALUES (N'Xin chào SQL Server 2025!');\n\nSELECT * FROM Greetings;\n",[467,1626,1627,1632,1637,1641,1646,1650,1654,1659,1664,1669,1674,1679,1683,1688,1692],{"__ignoreMap":851},[855,1628,1629],{"class":857,"line":858},[855,1630,1631],{},"CREATE DATABASE LearnSqlServer;\n",[855,1633,1634],{"class":857,"line":886},[855,1635,1636],{},"GO\n",[855,1638,1639],{"class":857,"line":901},[855,1640,1225],{"emptyLinePlaceholder":1224},[855,1642,1643],{"class":857,"line":915},[855,1644,1645],{},"USE LearnSqlServer;\n",[855,1647,1648],{"class":857,"line":926},[855,1649,1636],{},[855,1651,1652],{"class":857,"line":937},[855,1653,1225],{"emptyLinePlaceholder":1224},[855,1655,1656],{"class":857,"line":1055},[855,1657,1658],{},"CREATE TABLE Greetings (\n",[855,1660,1661],{"class":857,"line":1064},[855,1662,1663],{},"    Id   INT IDENTITY PRIMARY KEY,\n",[855,1665,1666],{"class":857,"line":1072},[855,1667,1668],{},"    Text NVARCHAR(200) NOT NULL,\n",[855,1670,1671],{"class":857,"line":1080},[855,1672,1673],{},"    CreatedAt DATETIME2 DEFAULT SYSUTCDATETIME()\n",[855,1675,1676],{"class":857,"line":1091},[855,1677,1678],{},");\n",[855,1680,1681],{"class":857,"line":1275},[855,1682,1225],{"emptyLinePlaceholder":1224},[855,1684,1685],{"class":857,"line":1286},[855,1686,1687],{},"INSERT INTO Greetings (Text) VALUES (N'Xin chào SQL Server 2025!');\n",[855,1689,1690],{"class":857,"line":1304},[855,1691,1225],{"emptyLinePlaceholder":1224},[855,1693,1695],{"class":857,"line":1694},15,[855,1696,1697],{},"SELECT * FROM Greetings;\n",[637,1699,1701],{"color":1700,"icon":268},"info",[1104,1702,1703,1713,1723,1733],{},[1107,1704,1705,1708,1709,1712],{},[467,1706,1707],{},"GO"," trong SSMS\u002Fsqlcmd là ",[436,1710,1711],{},"batch separator"," (không phải T-SQL chuẩn). Báo tool gửi batch trước nó lên server.",[1107,1714,1715,1718,1719,1722],{},[467,1716,1717],{},"IDENTITY"," ≈ auto-increment. ",[467,1720,1721],{},"IDENTITY(1, 1)"," (default) start 1, bước 1.",[1107,1724,1725,1728,1729,1732],{},[467,1726,1727],{},"NVARCHAR"," cho Unicode (tiếng Việt). ",[467,1730,1731],{},"VARCHAR"," chỉ ASCII.",[1107,1734,1735,1738,1739,1742],{},[467,1736,1737],{},"DATETIME2"," chính xác hơn ",[467,1740,1741],{},"DATETIME"," (đến 100ns), nên dùng cho mọi case mới.",[427,1744,1746],{"id":1745},"_6-cấu-hình-cơ-bản-nên-biết","6. Cấu hình cơ bản nên biết",[453,1748,1750],{"id":1749},"đổi-default-schema","Đổi default schema",[846,1752,1754],{"className":1594,"code":1753,"language":1596,"meta":851,"style":851},"ALTER USER sa WITH DEFAULT_SCHEMA = dbo;\n",[467,1755,1756],{"__ignoreMap":851},[855,1757,1758],{"class":857,"line":858},[855,1759,1753],{},[453,1761,1763],{"id":1762},"bật-query-store-theo-dõi-plan","Bật query store (theo dõi plan)",[846,1765,1767],{"className":1594,"code":1766,"language":1596,"meta":851,"style":851},"ALTER DATABASE LearnSqlServer\nSET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);\n",[467,1768,1769,1774],{"__ignoreMap":851},[855,1770,1771],{"class":857,"line":858},[855,1772,1773],{},"ALTER DATABASE LearnSqlServer\n",[855,1775,1776],{"class":857,"line":886},[855,1777,1778],{},"SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);\n",[453,1780,1782],{"id":1781},"set-collation-phù-hợp-tiếng-việt","Set collation phù hợp tiếng Việt",[846,1784,1786],{"className":1594,"code":1785,"language":1596,"meta":851,"style":851},"-- Khi tạo DB\nCREATE DATABASE LearnSqlServer\nCOLLATE Vietnamese_CI_AS;     -- CI = case insensitive, AS = accent sensitive\n\n-- Đổi sau\nALTER DATABASE LearnSqlServer\nCOLLATE Vietnamese_CI_AS;\n",[467,1787,1788,1793,1798,1803,1807,1812,1816],{"__ignoreMap":851},[855,1789,1790],{"class":857,"line":858},[855,1791,1792],{},"-- Khi tạo DB\n",[855,1794,1795],{"class":857,"line":886},[855,1796,1797],{},"CREATE DATABASE LearnSqlServer\n",[855,1799,1800],{"class":857,"line":901},[855,1801,1802],{},"COLLATE Vietnamese_CI_AS;     -- CI = case insensitive, AS = accent sensitive\n",[855,1804,1805],{"class":857,"line":915},[855,1806,1225],{"emptyLinePlaceholder":1224},[855,1808,1809],{"class":857,"line":926},[855,1810,1811],{},"-- Đổi sau\n",[855,1813,1814],{"class":857,"line":937},[855,1815,1773],{},[855,1817,1818],{"class":857,"line":1055},[855,1819,1820],{},"COLLATE Vietnamese_CI_AS;\n",[637,1822,1823,1838],{"color":828,"icon":640},[432,1824,641,1825,645,1828],{},[436,1826,1827],{},"Câu hỏi phỏng vấn:",[647,1829,1830,1831,1113,1834,1837],{},"\"Khác biệt giữa Collation ",[467,1832,1833],{},"CI_AS",[467,1835,1836],{},"CS_AS","?\"",[1104,1839,1840,1849,1858,1867],{},[1107,1841,1842,1845,1846,451],{},[436,1843,1844],{},"CI"," = Case Insensitive — ",[467,1847,1848],{},"'abc' = 'ABC'",[1107,1850,1851,1854,1855,451],{},[436,1852,1853],{},"CS"," = Case Sensitive — ",[467,1856,1857],{},"'abc' \u003C> 'ABC'",[1107,1859,1860,1863,1864,451],{},[436,1861,1862],{},"AS"," = Accent Sensitive — ",[467,1865,1866],{},"'a' \u003C> 'á'",[1107,1868,1869,1872,1873,451],{},[436,1870,1871],{},"AI"," = Accent Insensitive — ",[467,1874,1875],{},"'a' = 'á'",[427,1877,1879],{"id":1878},"_7-đặc-thù-sql-server-cần-biết-ngay","7. Đặc thù SQL Server cần biết ngay",[637,1881,1882],{"color":639,"icon":810},[1883,1884,1885,1904,1918,1925,1938,1955],"ol",{},[1107,1886,1887,1893,1894,1897,1898,507,1901,451],{},[436,1888,1889,1890],{},"Identifier ",[467,1891,1892],{},"[]"," thay vì ",[467,1895,1896],{},"\"\""," của ANSI. Ví dụ ",[467,1899,1900],{},"[Order]",[467,1902,1903],{},"[Group]",[1107,1905,1906,1909,1910,1913,1914,1917],{},[436,1907,1908],{},"String literal",": ",[467,1911,1912],{},"N'tiếng Việt'"," cho Unicode, ",[467,1915,1916],{},"'ascii'"," cho ASCII.",[1107,1919,1920,1924],{},[436,1921,1922],{},[467,1923,1707],{}," chỉ là batch separator của tool, không phải SQL.",[1107,1926,1927,1893,1932,1909,1935,451],{},[436,1928,1929],{},[467,1930,1931],{},"TOP N",[467,1933,1934],{},"LIMIT N",[467,1936,1937],{},"SELECT TOP 10 * FROM Users",[1107,1939,1940,1945,1946,507,1949,507,1952,451],{},[436,1941,1942],{},[467,1943,1944],{},"@@"," = system variable: ",[467,1947,1948],{},"@@ROWCOUNT",[467,1950,1951],{},"@@IDENTITY",[467,1953,1954],{},"@@VERSION",[1107,1956,1957,1960,1961,1964],{},[436,1958,1959],{},"Multi-statement",": ngăn bằng ",[467,1962,1963],{},";"," — bắt buộc trước CTE và một số statement.",[427,1966,1968],{"id":1967},"_8-sql-server-2025-tính-năng-mới-nổi-bật-cho-phỏng-vấn","8. SQL Server 2025 — tính năng mới nổi bật cho phỏng vấn",[453,1970,1972],{"id":1971},"ai-vector-deep-dive","AI & Vector — deep dive",[663,1974,1975,1988],{},[666,1976,1977],{},[669,1978,1979,1982,1985],{},[672,1980,1981],{},"Tính năng",[672,1983,1984],{},"Mô tả",[672,1986,1987],{},"Ghi chú phỏng vấn",[688,1989,1990,2002,2012,2038,2054,2066,2081],{},[669,1991,1992,1996,1999],{},[693,1993,1994],{},[467,1995,469],{},[693,1997,1998],{},"Native vector type, tối đa 2000 chiều",[693,2000,2001],{},"OpenAI text-embedding-3-small = 1536 dims — vừa khít. Không cần vector DB riêng.",[669,2003,2004,2006,2009],{},[693,2005,485],{},[693,2007,2008],{},"Index vector trên SSD, millisecond latency",[693,2010,2011],{},"Tiết kiệm 90% RAM so với HNSW. Phù hợp dataset >100M vectors.",[669,2013,2014,2018,2033],{},[693,2015,2016],{},[467,2017,477],{},[693,2019,2020,2021,507,2024,507,2027,507,2030],{},"4 metric: ",[467,2022,2023],{},"cosine",[467,2025,2026],{},"euclidean",[467,2028,2029],{},"manhattan",[467,2031,2032],{},"dot",[693,2034,2035,2037],{},[467,2036,2023],{}," phổ biến nhất cho semantic search.",[669,2039,2040,2044,2047],{},[693,2041,2042],{},[467,2043,481],{},[693,2045,2046],{},"Similarity search với top-K",[693,2048,2049,2050,2053],{},"Tương đương ",[467,2051,2052],{},"ORDER BY distance LIMIT K"," trên vector DB.",[669,2055,2056,2060,2063],{},[693,2057,2058],{},[467,2059,493],{},[693,2061,2062],{},"Gọi REST API từ T-SQL",[693,2064,2065],{},"Gọi OpenAI, Qwen, hoặc bất kỳ endpoint nào — tạo embedding, chat completion, ... ngay trong SQL.",[669,2067,2068,2072,2075],{},[693,2069,2070],{},[467,2071,497],{},[693,2073,2074],{},"Đăng ký model AI như database object",[693,2076,2077,2080],{},[467,2078,2079],{},"CREATE EXTERNAL MODEL gpt4 ..."," rồi gọi qua stored procedure.",[669,2082,2083,2086,2089],{},[693,2084,2085],{},"RAG in-database",[693,2087,2088],{},"Full pipeline: chunk → embed → search → generate",[693,2090,2091],{},"Không cần middleware. Toàn bộ pipeline chạy trong SQL Server.",[453,2093,2095],{"id":2094},"optimized-locking-deep-dive","Optimized Locking — deep dive",[637,2097,2098,2105,2112,2136],{"color":639,"icon":640},[432,2099,641,2100,645,2102],{},[436,2101,644],{},[647,2103,2104],{},"\"Optimized Locking trong SQL Server 2025 là gì?\"",[432,2106,2107,2108,2111],{},"Optimized Locking là cơ chế lock mới của SQL Server 2025, ",[436,2109,2110],{},"mặc định bật"," trên mọi database mới:",[1883,2113,2114,2120,2130],{},[1107,2115,2116,2119],{},[436,2117,2118],{},"Chỉ lock row-level"," — không bao giờ escalate lên page lock hay table lock.",[1107,2121,2122,2125,2126,2129],{},[436,2123,2124],{},"LAQ (Lock After Qualification)"," — engine lọc row theo WHERE clause ",[436,2127,2128],{},"trước",", rồi mới lock những row thỏa điều kiện. Khác với cơ chế cũ: lock tất cả row đọc qua rồi mới lọc.",[1107,2131,2132,2135],{},[436,2133,2134],{},"Kết quả:"," giảm blocking đáng kể, đặc biệt với OLTP workload có nhiều concurrent transaction update\u002Ftừng row khác nhau.",[432,2137,2138,2139,2142],{},"Đây là thay đổi ",[436,2140,2141],{},"cực lớn"," về locking strategy — tồn tại từ SQL Server 7.0 đến giờ mới được viết lại.",[453,2144,2146],{"id":2145},"pspo-oppo-giải-bài-parameter-sniffing","PSPO & OPPO — giải bài parameter sniffing",[663,2148,2149,2162],{},[666,2150,2151],{},[669,2152,2153,2156,2159],{},[672,2154,2155],{},"Cơ chế",[672,2157,2158],{},"Viết tắt",[672,2160,2161],{},"Cách hoạt động",[688,2163,2164,2180],{},[669,2165,2166,2170,2173],{},[693,2167,2168],{},[436,2169,579],{},[693,2171,2172],{},"Parameter Sensitive Plan Optimization",[693,2174,2175,2176,2179],{},"Cache ",[436,2177,2178],{},"nhiều plan"," cho cùng một query, mỗi plan tối ưu cho một khoảng parameter khác nhau. Runtime chọn plan phù hợp dựa trên giá trị thực tế.",[669,2181,2182,2186,2189],{},[693,2183,2184],{},[436,2185,583],{},[693,2187,2188],{},"Optional Parameter Plan Optimization",[693,2190,2191,2192,2195],{},"Với parameter ",[436,2193,2194],{},"optional"," (có giá trị NULL), optimizer tự chọn giữa plan \"có filter\" và \"không filter\" dựa trên việc parameter có được truyền vào hay không.",[637,2197,2198,2199,451],{"color":1700,"icon":810},"Cả PSPO và OPPO đều là database-scoped configuration, bật\u002Ftắt qua ",[467,2200,2201],{},"ALTER DATABASE SCOPED CONFIGURATION",[453,2203,2205],{"id":2204},"native-json-so-sánh-với-cách-cũ","Native JSON — so sánh với cách cũ",[663,2207,2208,2221],{},[666,2209,2210],{},[669,2211,2212,2215,2218],{},[672,2213,2214],{},"Khía cạnh",[672,2216,2217],{},"SQL Server 2022 (cũ)",[672,2219,2220],{},"SQL Server 2025 (mới)",[688,2222,2223,2242,2256,2270,2283,2300,2319],{},[669,2224,2225,2228,2233],{},[693,2226,2227],{},"Kiểu dữ liệu",[693,2229,2230,2232],{},[467,2231,534],{}," — text storage",[693,2234,2235,2237,2238,2241],{},[467,2236,530],{}," — ",[436,2239,2240],{},"binary storage",", native type",[669,2243,2244,2247,2250],{},[693,2245,2246],{},"Dung lượng",[693,2248,2249],{},"Lớn (text encoding)",[693,2251,2252,2253],{},"Tiết kiệm ",[436,2254,2255],{},"~50%",[669,2257,2258,2261,2267],{},[693,2259,2260],{},"Kích thước tối đa",[693,2262,2263,2264,2266],{},"2GB (",[467,2265,534],{}," limit)",[693,2268,2269],{},"2GB (JSON document)",[669,2271,2272,2275,2278],{},[693,2273,2274],{},"Update một phần",[693,2276,2277],{},"Viết lại toàn bộ document",[693,2279,2280,2282],{},[467,2281,550],{}," — in-place partial update",[669,2284,2285,2288,2294],{},[693,2286,2287],{},"Aggregate",[693,2289,2290,2291],{},"Thủ công qua ",[467,2292,2293],{},"FOR JSON PATH",[693,2295,2296,507,2298],{},[467,2297,554],{},[467,2299,557],{},[669,2301,2302,2305,2314],{},[693,2303,2304],{},"Tìm kiếm",[693,2306,2307,2310,2311],{},[467,2308,2309],{},"JSON_VALUE()"," \u002F ",[467,2312,2313],{},"JSON_QUERY()",[693,2315,2316,2317],{},"Thêm ",[467,2318,560],{},[669,2320,2321,2324,2327],{},[693,2322,2323],{},"Index",[693,2325,2326],{},"Computed column + index thủ công",[693,2328,2329,2331],{},[436,2330,564],{}," trên path cụ thể",[637,2333,2334,2341,2344,2355,2358],{"color":828,"icon":640},[432,2335,641,2336,645,2338],{},[436,2337,644],{},[647,2339,2340],{},"\"Khi nào dùng JSON column thay vì normalized table?\"",[432,2342,2343],{},"Dùng JSON column khi:",[1104,2345,2346,2349,2352],{},[1107,2347,2348],{},"Schema linh hoạt \u002F thay đổi thường xuyên (ví dụ: product attributes khác nhau theo category)",[1107,2350,2351],{},"Đọc toàn bộ document một lần (không cần join)",[1107,2353,2354],{},"Dữ liệu hierarchical \u002F nested tự nhiên",[432,2356,2357],{},"Dùng normalized table khi:",[1104,2359,2360,2363,2366],{},[1107,2361,2362],{},"Cần query theo từng field riêng biệt thường xuyên (WHERE, JOIN)",[1107,2364,2365],{},"Cần referential integrity (FK)",[1107,2367,2368],{},"Dữ liệu flat, không nested",[637,2370,2372,2373],{"color":639,"icon":2371},"i-lucide-arrow-right","Tiếp theo: ",[2374,2375,2376],"a",{"href":179},"Cú pháp T-SQL cơ bản",[2378,2379,2380],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":851,"searchDepth":886,"depth":886,"links":2382},[2383,2387,2393,2394,2395,2396,2401,2402],{"id":429,"depth":886,"text":430,"children":2384},[2385,2386],{"id":455,"depth":901,"text":456},{"id":660,"depth":901,"text":661},{"id":836,"depth":886,"text":837,"children":2388},[2389,2390,2391,2392],{"id":840,"depth":901,"text":841},{"id":979,"depth":901,"text":980},{"id":1143,"depth":901,"text":1144},{"id":1449,"depth":901,"text":1450},{"id":1453,"depth":886,"text":1454},{"id":1572,"depth":886,"text":1573},{"id":1620,"depth":886,"text":1621},{"id":1745,"depth":886,"text":1746,"children":2397},[2398,2399,2400],{"id":1749,"depth":901,"text":1750},{"id":1762,"depth":901,"text":1763},{"id":1781,"depth":901,"text":1782},{"id":1878,"depth":886,"text":1879},{"id":1967,"depth":886,"text":1968,"children":2403},[2404,2405,2406,2407],{"id":1971,"depth":901,"text":1972},{"id":2094,"depth":901,"text":2095},{"id":2145,"depth":901,"text":2146},{"id":2204,"depth":901,"text":2205},"SQL Server 2025 (17.x) — RDBMS của Microsoft với native vector + JSON + RegEx + Copilot. Hướng dẫn cài đặt bằng Docker, SSMS, Azure Data Studio.","md",null,{},{"title":173,"icon":176},{"title":422,"description":2408},"LLk9GLGHryB5chKVPJ0E1aLhSLa61BeKxbPGcRn-c6E",[2416,2418],{"title":162,"path":163,"stem":164,"description":2417,"icon":68,"children":-1},"Tài liệu tự học 3 RDBMS phổ biến. Mỗi DB có lý thuyết + thực hành + phần highlight câu phỏng vấn + Q và A tổng hợp.",{"title":178,"path":179,"stem":180,"description":2419,"icon":181,"children":-1},"DDL, DML, kiểu dữ liệu, NULL handling, ràng buộc — nền tảng T-SQL cho SQL Server 2025.",1783490363824]