[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AFTTQFSNT706RG7DKZVZN":3,"skill-same:01M69AFTTQFSNT706RG7DKZVZN":115},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M69AFTTQFSNT706RG7DKZVZN","analyze-readiness-at-scale",null,"Analyze migration assessment readiness at scale or show an estate-wide migration assessment dashboard for Azure Arc SQL Server instances.","microsoft\u002Fsqlcon-eu-2026-demos","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69AFC8P5962CJBG1RDAKA7Q",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25,26,27],"analyze readiness at scale","dashboard","sql","sql server","2026-11-10 10:12:30",false,"---\nname: analyze-readiness-at-scale\ndescription: Analyze migration assessment readiness at scale or show an estate-wide migration assessment dashboard for Azure Arc SQL Server instances.\nallowed-tools: Bash(az:*, curl:*) PowerShell Grep View\n---\n\n# Analyze Readiness at Scale\n\n## When to Use\n\nUse for Azure Arc SQL Server estate assessment coverage, target readiness totals, and side-by-side instance-level readiness for SQL DB, SQL MI, and SQL VM. Version and edition are optional instance filters, not default sections.\n\nThis capability is Azure-only and reads existing data through Azure Resource Graph. Do not offer a local mode or run assessments.\n\n## Workflow\n\n### Step 1: Resolve Dashboard Scope\n\nUse provided subscriptions. Otherwise ask for all accessible subscriptions in\nthe current tenant (default) or a selected subset. Follow **Subscription\nSelection** in `references\u002Farg-queries.md`. Do not ask for individual instances.\n\nWhen the user explicitly refers to a current Estate view and the host provides\ncurrent-view context, use its subscription scope and applicable filters. If\ncurrent-view context is unavailable, use the normal subscription-selection flow\nabove.\n\n### Step 2: Run the Queries\n\nRead `references\u002Farg-queries.md` and `references\u002Freadiness-output.md` completely before executing queries or rendering output. If either reference cannot be read, stop instead of improvising.\n\nFor the default report, run Query 1, Query 2, and Query 3 exactly as defined in\n`references\u002Farg-queries.md`; run Query 3 once for SQL DB and once for SQL MI.\nDo not run Query 4 or Query 5 unless the user requests an edition or version\nfilter. Do not add, remove, or normalize query conditions. Render all three\nfixed-output sections in the same turn.\n\nDefine the complete KQL and invoke the provided ARG adapter in the same\nPowerShell tool call because terminal state does not persist. Do not use\n`az graph query` in place of the provided ARG adapter.\n\nThe default instance grid must include only fresh assessed instances. Use its\nfully paginated Query 2 row count for the grid heading and pagination.\n\n### Step 3: Render the Fixed Output\n\nRender only the fixed output defined in `references\u002Freadiness-output.md`, in this exact order:\n\n1. Readiness totals\n2. Instance × SQL DB\u002FSQL MI\u002FSQL VM readiness grid\n3. Top five recorded blockers for SQL DB and SQL MI, followed by the fixed SQL VM no-compatibility-blockers message\n\nEnd with the optional version\u002Fedition filter prompt defined in the output\nreference, including the option to request remediation guidance for a listed\ntop blocker. Do not render version or edition distributions by default.\n\nDo not add costs, target SKUs, blocker-count status cells, warning actions,\ndatabase coverage, or recommended next steps.\n\nThe instance table columns must be exactly:\n\n```text\nSQL Server instance | SQL DB | SQL MI | SQL VM\n```\n\nThe totals table columns must be exactly:\n\n```text\nStatus | SQL DB | SQL MI | SQL VM\n```\n\n### Step 4: Drill Down\n\nUse Query 4 to offer edition values and Query 5 to offer version values. Apply the selected value to Query 2 and rerender the assessed-instance grid. For one instance's detailed assessment, use `get-migration-assessment`.\n\nWhen the user asks for remediation for a top blocker, read\n`references\u002Fremediation-sources.md` completely. Map the Query 3 `FeatureId` to\nthe rule title in the Microsoft Learn catalog for SQL DB or SQL MI. Return only published description, recommendation, and supporting links. Do not invent steps or imply that remediation is automated or guaranteed.\n\n## Completion Check\n\n- Query execution followed `references\u002Farg-queries.md` without modification.\n- Output followed `references\u002Freadiness-output.md`.\n- ARG pagination completed before totals were presented.\n- Top blocker counts use distinct affected SQL Server instances.\n- The totals use Query 1 and the readiness grid count uses Query 2.\n- Every ARG request contained the intended complete KQL in the same terminal\n  invocation; no state was reused from a previous invocation.\n\n## Error Handling\n\n- 401\u002F403 -> verify Azure authentication and Resource Graph read permission.\n- 429 -> honor `Retry-After`; report persistent throttling.\n- Empty Query 1 result -> say that no fresh assessment totals are visible to\n  the current Azure identity in the selected scope.\n- Empty Query 2 with a non-empty Query 1 -> say that fresh assessment totals\n  exist, but no instances qualify for the assessed-instance grid because that\n  grid also excludes failover-cluster nodes and VM-contained resources.\n- Empty results do not prove that the subscriptions contain zero Arc SQL Server\n  instances.\n- Partial result -> identify incomplete scope; do not present it as complete.\n\n## References\n\n- `references\u002Farg-queries.md`\n- `references\u002Freadiness-output.md`\n- `references\u002Fremediation-sources.md`\n","# Analyze Readiness at Scale\n\n## When to Use\n\nUse for Azure Arc SQL Server estate assessment coverage, target readiness totals, and side-by-side instance-level readiness for SQL DB, SQL MI, and SQL VM. Version and edition are optional instance filters, not default sections.\n\nThis capability is Azure-only and reads existing data through Azure Resource Graph. Do not offer a local mode or run assessments.\n\n## Workflow\n\n### Step 1: Resolve Dashboard Scope\n\nUse provided subscriptions. Otherwise ask for all accessible subscriptions in\nthe current tenant (default) or a selected subset. Follow **Subscription\nSelection** in `references\u002Farg-queries.md`. Do not ask for individual instances.\n\nWhen the user explicitly refers to a current Estate view and the host provides\ncurrent-view context, use its subscription scope and applicable filters. If\ncurrent-view context is unavailable, use the normal subscription-selection flow\nabove.\n\n### Step 2: Run the Queries\n\nRead `references\u002Farg-queries.md` and `references\u002Freadiness-output.md` completely before executing queries or rendering output. If either reference cannot be read, stop instead of improvising.\n\nFor the default report, run Query 1, Query 2, and Query 3 exactly as defined in\n`references\u002Farg-queries.md`; run Query 3 once for SQL DB and once for SQL MI.\nDo not run Query 4 or Query 5 unless the user requests an edition or version\nfilter. Do not add, remove, or normalize query conditions. Render all three\nfixed-output sections in the same turn.\n\nDefine the complete KQL and invoke the provided ARG adapter in the same\nPowerShell tool call because terminal state does not persist. Do not use\n`az graph query` in place of the provided ARG adapter.\n\nThe default instance grid must include only fresh assessed instances. Use its\nfully paginated Query 2 row count for the grid heading and pagination.\n\n### Step 3: Render the Fixed Output\n\nRender only the fixed output defined in `references\u002Freadiness-output.md`, in this exact order:\n\n1. Readiness totals\n2. Instance × SQL DB\u002FSQL MI\u002FSQL VM readiness grid\n3. Top five recorded blockers for SQL DB and SQL MI, followed by the fixed SQL VM no-compatibility-blockers message\n\nEnd with the optional version\u002Fedition filter prompt defined in the output\nreference, including the option to request remediation guidance for a listed\ntop blocker. Do not render version or edition distributions by default.\n\nDo not add costs, target SKUs, blocker-count status cells, warning actions,\ndatabase coverage, or recommended next steps.\n\nThe instance table columns must be exactly:\n\n```text\nSQL Server instance | SQL DB | SQL MI | SQL VM\n```\n\nThe totals table columns must be exactly:\n\n```text\nStatus | SQL DB | SQL MI | SQL VM\n```\n\n### Step 4: Drill Down\n\nUse Query 4 to offer edition values and Query 5 to offer version values. Apply the selected value to Query 2 and rerender the assessed-instance grid. For one instance's detailed assessment, use `get-migration-assessment`.\n\nWhen the user asks for remediation for a top blocker, read\n`references\u002Fremediation-sources.md` completely. Map the Query 3 `FeatureId` to\nthe rule title in the Microsoft Learn catalog for SQL DB or SQL MI. Return only published description, recommendation, and supporting links. Do not invent steps or imply that remediation is automated or guaranteed.\n\n## Completion Check\n\n- Query execution followed `references\u002Farg-queries.md` without modification.\n- Output followed `references\u002Freadiness-output.md`.\n- ARG pagination completed before totals were presented.\n- Top blocker counts use distinct affected SQL Server instances.\n- The totals use Query 1 and the readiness grid count uses Query 2.\n- Every ARG request contained the intended complete KQL in the same terminal\n  invocation; no state was reused from a previous invocation.\n\n## Error Handling\n\n- 401\u002F403 -> verify Azure authentication and Resource Graph read permission.\n- 429 -> honor `Retry-After`; report persistent throttling.\n- Empty Query 1 result -> say that no fresh assessment totals are visible to\n  the current Azure identity in the selected scope.\n- Empty Query 2 with a non-empty Query 1 -> say that fresh assessment totals\n  exist, but no instances qualify for the assessed-instance grid because that\n  grid also excludes failover-cluster nodes and VM-contained resources.\n- Empty results do not prove that the subscriptions contain zero Arc SQL Server\n  instances.\n- Partial result -> identify incomplete scope; do not present it as complete.\n\n## References\n\n- `references\u002Farg-queries.md`\n- `references\u002Freadiness-output.md`\n- `references\u002Fremediation-sources.md`\n",{"name":5,"description":7,"allowed-tools":33},"Bash(az:*, curl:*) PowerShell Grep View","main","d2b16500cb10bf44117390e08717ca731032d423","corenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale",0,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-01 23:31:12",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add microsoft\u002Fsqlcon-eu-2026-demos --skill analyze-readiness-at-scale",{"tool":49,"command":50},"bunx","bunx skills add microsoft\u002Fsqlcon-eu-2026-demos --skill analyze-readiness-at-scale",{"tool":52,"command":53},"pnpm","pnpm dlx skills add microsoft\u002Fsqlcon-eu-2026-demos --skill analyze-readiness-at-scale","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002FSKILL.md",true,[57,63,67,71,75,79,83,87,91,95,99,103,107,111],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Farg-queries.md","REFERENCE","参考文档",18759,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002Freferences\u002Farg-queries.md",{"path":64,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fcli-api-usage.md",7936,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fcli-api-usage.md",{"path":68,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fclient-library-usage.md",4872,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fclient-library-usage.md",{"path":72,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fcore-concepts.md",7697,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fcore-concepts.md",{"path":76,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fdata-management.md",21725,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fdata-management.md",{"path":80,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fdata-transfer.md",12363,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fdata-transfer.md",{"path":84,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fgcsfuse.md",22126,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fgcsfuse.md",{"path":88,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fhigh-performance-storage.md",11451,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fhigh-performance-storage.md",{"path":92,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fiac-usage.md",9660,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fiac-usage.md",{"path":96,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fmcp-usage.md",14041,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fmcp-usage.md",{"path":100,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Freadiness-output.md",3893,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002Freferences\u002Freadiness-output.md",{"path":104,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fremediation-sources.md",1609,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002Freferences\u002Fremediation-sources.md",{"path":108,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fstorage-intelligence.md",15639,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fgoogle-cloud-storage-basics\u002Freferences\u002Fstorage-intelligence.md",{"path":112,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":113,"sourceHtmlUrl":114},"skill-contract.yml",4137,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fanalyze-readiness-at-scale\u002Fskill-contract.yml",[116,131,143,153,164,175],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":127,"publishedAt":28},"01M69AGTKN8F66BXE45KQ3MDMX","keynote-demo-app","Build or extend a SQLCon EU 2026 keynote demo application so it looks and behaves like the other keynote apps. Use when creating a new demo view (invoices, operations, orders), restyling an existing app to match, adding a deliberate database anti-pattern for a troubleshooting demo, or wiring an app to Azure SQL or Fabric SQL with managed identity. Triggers include \"make this look like the keynote app\", \"build a demo view\", \"add the slow query demo\", \"match Caldova styling\".","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fshared\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[128,26,129,130],"keynote demo app","azure sql","identity",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":139,"publishedAt":28},"01M69AGRAPA61AN2A2N2RF6NCJ","validate-post-migration-data","Validate data and schema after migrating SQL Server to Azure SQL Database, Azure SQL Managed Instance, or SQL Server on Azure VM. Use after migration, restore, BACPAC import, LRS completion, cutover validation, row-count comparison, or source-target reconciliation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fvalidate-post-migration-data\u002FSKILL.md",[137,138],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[140,141,27,26,142,129],"validate post migration data","validate","azure sql database",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":151,"publishedAt":28},"01M69AGNG0HQK50EW1CNEFTR1N","sql-server-to-sql-mi-lrs-migration","Migrate SQL Server databases to Azure SQL Managed Instance with Log Replay Service (LRS) using managed identity for Blob access. Use for SQL Server to SQL MI, LRS, log replay, continuous restore, or low-downtime backup-chain migrations.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fsql-server-to-sql-mi-lrs-migration\u002FSKILL.md",[149,150],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[152,27,26,129,130],"sql server to sql mi lrs migration",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":161,"publishedAt":28},"01M69AGJC50G0YX7VQ52SQ0AD0","sql-bacpac-to-azure-sql-db-migration","Migrate one or all user databases from SQL Server to Azure SQL Database with an offline BACPAC workflow. Use for BACPAC, SqlPackage export\u002Fimport, bulk database migration, or offline Azure SQL Database migration requests.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fsql-bacpac-to-azure-sql-db-migration\u002FSKILL.md",[159,160],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[162,26,129,27,142,163],"sql bacpac to azure sql db migration","workflow",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":172,"publishedAt":28},"01M69AGFTTX13PCFKM3YVHKGDV","sql-backup-restore-to-azure-sql-vm-migration","Migrate a SQL Server 2008 through SQL Server 2025 source to a SQL Server 2025 target wherever it runs, including SQL Server on Azure VM, by creating a local full backup, uploading it to Azure Blob Storage with AzCopy and the operator's Microsoft Entra identity, and restoring from URL with the target SQL Server managed identity. Sources newer than SQL Server 2025 are blocked because target restore compatibility has not been validated. Use for SQL-to-SQL, local-backup, AzCopy, managed-identity, Azure SQL VM, or SQL Server 2025 restore migrations.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Fsql-backup-restore-to-azure-sql-vm-migration\u002FSKILL.md",[170,171],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[26,129,173,9,174,130,27],"sql backup restore to azure sql vm migration","storage",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":182,"publishedAt":28},"01M69AGDP6XXM1YW7X1VV1QKE5","run-migration-assessment","Route generic or unresolved SQL Server assessment, readiness, compatibility, cost, and SKU recommendation requests. Use for bare server names or whenever Azure versus local\u002Fon-premises is not explicit; ask which source applies, then delegate.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsqlcon-eu-2026-demos\u002Fblob\u002Fmain\u002Fcorenote\u002Fmigration\u002Fskills\u002Frun-migration-assessment\u002FSKILL.md",[181],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},[183,27,26],"run migration assessment"]