示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载在 SQL Server 与 Azure SQL Database 迁移项目中Data Migration AssistantDMA可以为单个数据库生成评估报告但当实例与数据库数量庞大时逐份阅读 JSON 报告并汇总结论将耗费大量时间。本篇文章基于 sql-server-samples 仓库中的>Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass在 PowerShell 中运行脚本。脚本源码末尾的 EXECUTE FUNCTIONS 示例 给出了典型调用方式dmaProcessor -serverName localhost -databaseName DMAReporting -jsonDirectory C:\DMAResults\ -processTo SQLServer如需处理命名实例将-serverName写为SERVERNAME\INSTANCENAME即可源码注释对此有专门说明。4.3 核心参数说明脚本通过名为dmaProcessor的 PowerShell 函数封装全部逻辑其参数定义位于 源码 38-55 行参数必填校验规则说明serverName是非空目标 SQL Server 实例名如localhost或SERVERNAME\INSTANCENAMEdatabaseName是非空报告数据库名不存在时脚本会自动创建例如DMAReportingjsonDirectory是非空DMA JSON 评估文件所在目录脚本会在该目录下创建Processed子目录processTo是ValidateSet(SQLServer)处理目标当前版本仅支持SQLServer脚本注释明确说明仅支持 Windows 身份认证连接 SQL Server连接字符串固定为Server$serverName;Database$databaseName;Trusted_ConnectionTrue;即仅支持 Windows 身份验证这是运行该脚本时需要特别注意的限制。五、源码深度解析导入脚本在后台做了什么阅读 DMA_Processor_V5.0.ps1 的完整实现可以发现它并非简单的读 JSON → 插表而是一个自包含的报表基础设施搭建工具数据库对象全部通过 SQL Server Management ObjectsSMO以编程方式创建幂等设计已存在的对象直接跳过并输出黄色提示。5.1 自动创建数据库与三张核心表脚本通过 SMO 检查目标库是否存在不存在则创建随后创建三张表表 1ReportData21 列——存储本地升级评估明细完整列结构如下列名数据类型说明ImportDateDateTime导入时间InstanceNameVarChar(50)源实例名StatusVarChar(30)评估状态NameVarChar(255)数据库名SizeMBDecimal(6,38)数据库大小MBSourceCompatibilityLevelVarChar(15)源兼容级别TargetCompatibilityLevelVarChar(15)目标兼容级别CategoryVarChar(30)问题类别SeverityVarChar(15)严重级别ChangeCategoryVarChar(20)变更类别BehaviorChange / Deprecated / BreakingChange / MigrationBlocker / NotDefined 等RuleIdVarChar(100)规则 IDTitleVarCharMax问题标题ImpactVarCharMax影响描述RecommendationVarCharMax修复建议MoreInfoVarCharMax更多信息ImpactedObjectNameVarChar(255)受影响对象名ImpactedObjectTypeVarChar(50)受影响对象类型ImpactDetailVarCharMax影响明细DBOwnerVarChar(128)数据库属主v3.1 新增AssessmentTargetVarChar(50)评估目标平台如 SqlServer2016、AzureSQLDatabaseV12AssessmentNameVarChar(128)评估名称表 2AzureFeatureParity15 列——存储 Azure 目标的功能对等性feature parity评估明细包含 ServerName、Version、Status、FeatureParityCategory、RuleID、Title、Impact、Recommendation、MoreInfo、ImpactedDatabasename、ImpactedObjectType、ImpactDetail 等列用于记录现有数据库中的功能在 Azure SQL DB 上是否可用/受支持。表 3BreakingChangeWeighting——破坏性变更权重表为评估结果提供加权排序依据。其结构颇具巧思列名数据类型说明RuleIdVarChar(36)NOT NULL规则 ID并作为主键索引名PK_BreakingChangeWeighting_RuleIdTitleVarChar(150)规则标题EffortTinyInt修复工作量FixTimeTinyInt修复耗时CostTinyInt修复成本ChangeRankTinyInt计算列计算表达式(Effort FixTime Cost) / 3脚本还会向该表预置 24 条常见迁移问题的权重参考数据例如UR00006BACKUP LOG WITH NO_LOG|TRUNCATE_ONLY语句不受支持、UR00013兼容级别 110 下不允许 COMPUTE 子句、UR00058升级后新保留字不能作为标识符等均以 1/1/1 的初始权重入表。5.2 四个报表视图升级成功率是怎么算出来的脚本创建了四个视图构成 Power BI 报表的数据底座DatabaseCategoryRanking按数据库名Name与变更类别ChangeCategory聚合输出每类问题的数量NumberOfIssues及其占该数据库全部问题的百分比ChangeCategoryPercentage用于某库问题集中在哪一类的分布分析。UpgradeSuccessRanking通用升级成功率视图按实例、数据库、目标兼容级别聚合将行为变更、弃用、破坏性变更、迁移阻断四类问题分别计数其中破坏性变更使用SUM(ChangeRank)加权而非简单计数然后计算100 - (某类问题数 / 总数) × 100作为各类成功率当某类问题为 0 时返回 1以保证报表有数据展示。该视图同时排除了NotDefined类别feature parity 数据与TargetCompatibilityLevel NAAzure 迁移。UpgradeSuccessRanking_OnPrem本地升级专用视图通过AssessmentTarget IN (SqlServer2012, SqlServer2014, SqlServer2016)过滤仅统计行为变更、弃用、破坏性变更三类。UpgradeSuccessRanking_AzureAzure 迁移专用视图通过AssessmentTarget AzureSQLDatabaseV12过滤额外包含迁移阻断MigrationBlocker类别。值得注意v5.0 版本说明中明确记录将UpgradeSuccessRanking拆分为 OnPrem 与 Azure 两个视图是为了修正 Power BI 中的评估计数问题——这也是理解这两个视图并存原因的关键。5.3 表类型与存储过程借助 TVP 实现批量写入为提高批量导入效率脚本创建了两个用户定义表类型User-Defined Table Type与两个存储过程表类型JSONResults21 列与AzureFeatureParityResults15 列列结构与对应目标表完全一致存储过程dbo.JSONResults_Insert接收JSONResults JSONResults READONLY参数将表类型数据整体INSERT INTO dbo.ReportData存储过程dbo.AzureFeatureParityResults_Insert接收AzureFeatureParityResults AzureFeatureParityResults READONLY参数将数据整体INSERT INTO dbo.AzureFeatureParity。在 PowerShell 端脚本先把 JSON 解析结果填充到内存中的System.Data.DataTable再以[System.Data.SqlDbType]::Structured类型的表值参数TVP传给存储过程一次调用写入整批数据避免逐行 INSERT 的性能开销。5.4 JSON 解析链路与失败兜底脚本对每个*.JSON文件执行两层解析本地升级评估ConvertFrom-Json读取文件 → 遍历Databases数组 → 遍历每个数据库的AssessmentRecommendations→ 遍历每条评估的ImpactedObjects最终为每条问题 × 受影响对象组合写入一行ReportDataAzure 功能对等性遍历ServerInstances数组 → 遍历其AssessmentRecommendations→ 遍历ImpactedDatabases写入AzureFeatureParity。针对评估失败导致 JSON 中相关数组为空的情况脚本构造了三个占位对象blankAssessmentRecommendations、blankImpactedObjects、blankImpactedDatabases所有字段默认值均为NA从而把失败的评估也完整捕获进报表体系避免数据丢失。5.5 文件处理与错误处理策略脚本会在jsonDirectory下创建Processed子目录每个 JSON 文件只有在成功写入数据库后才被移动到Processed目录v5.0 新增行为写入失败的日志文件保留在原目录并输出红色错误信息每个文件处理完毕后控制台输出该文件的ReportData行数、AzureFeatureParity行数与总处理耗时若目标目录下没有任何*.JSON文件脚本直接提示并退出所有数据库对象创建过程均有绿色成功/黄色已存在状态提示。5.6 版本演进脉络脚本头部注释记录了从 1.0 到 5.0 的演进可帮助我们理解设计意图2.0将 JSON 解析重构为兼容 SQL Server 2014 及更低版本的方案移除对 SQL Server 2016 原生 JSON 函数的依赖即所有解析都在 PowerShell 端完成3.0引入破坏性变更权重表并集成到视图中移除 Azure Artifacts4.0增加DBOwner列引入 DMAWarehouse 对象5.0新增 Azure 目标 feature parity 支持新表、新表类型、新存储过程、PS 端 DataTable 与解析循环增强失败数据处理增加数据仓库创建选项拆分 OnPrem/Azure 两个成功率视图。六、端到端工作流建议将两个示例组合使用可形成完整的整合评估流水线使用 DMA 对目标实例/数据库执行迁移评估输出 JSON 到统一目录修改 DMA_Processor_V5.0.ps1 中 EXECUTE FUNCTIONS 的参数serverName、databaseName、jsonDirectory、processTo SQLServer运行脚本完成建库、建对象、导入与文件归档用 Power BI 打开 DMA Reports V3.1.pbix连接上述数据库从 Dashboard 总览、On Premise Upgrade Readiness、Azure SQL DB Upgrade Readiness 等报表中获得全局视图依据Azure SQL DB Unsupported Features与On Premise Feature Parity Report -- Details输出形成针对性的改造与升级计划。七、适用前提与限制说明两个示例的 README 均声明适用于SQL Server 2016或更高版本与 Azure SQL Database前置软件为 PowerShell / Power BI / Data Migration Assistant导入脚本仅支持 Windows 身份验证连接 SQL ServerTrusted_ConnectionTrue如需 SQL 身份认证或托管身份需要自行改造processTo参数当前仅接受SQLServer脚本面向 Azure SQL Database 的导入能力以 feature parity 数据表承载而非独立的目标类型示例代码按仓库内免责声明仅供演示参考不保证用于生产环境使用前应结合自身环境充分验证脚本中UpgradeSuccessRanking的统计口径例如未考虑重复问题对成功率的边际影响在视图注释中有明确说明解读报表数字时需留意。八、相关资源模块入口与说明samples/features/data-migration-assistant/readme.mdPower BI 报表说明Power BI Reports/README.md报表文件DMA Reports V3.1.pbix导入脚本说明PowerShell Script/README.md导入脚本源码DMA_Processor_V5.0.ps1仓库中更多数据迁移相关示例可参考 samples/manage 目录 与 samples/databases 目录例如 samples/manage/azure-data-factory-ssis 中的许可合规示例与 samples/manage/azure-sql-db-managed-instance 下的迁移辅助脚本。赞分享示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载相关推荐使用 Power BI 汇总呈现 Data Migration Assistant 迁移评估sql-server-samples 的 DMA 整合报告模板实战指南使用 Power BI 汇总呈现 Data Migration Assistant 迁移评估sql server samples 的 DMA 整合报告模板实战示例工程数据库教程后端SQL Server 批量数据导入导出实战基于 sql-server-samples 的 BCP 与 BULK INSERT 订单数据装载指南SQL Server 批量数据导入导出实战基于 sql server samples 的 BCP 与 BULK INSERT 订单数据装载指南 导读 本文以示例工程数据库教程后端Azure Arc SQL Server 监控工作簿基于 sql-server-samples 的实例、数据库与最佳实践评估可视化方案Azure Arc SQL Server 监控工作簿基于 sql server samples 的实例、数据库与最佳实践评估可视化方案 本文面向使用 SQL示例工程数据库教程后端上一篇变更描述下一篇告别操作盲区KeymouseGo脚本执行数据可视化全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考