SuperAPI AI 工具集

azuresql-db-seed

数据与分析

查看项目

更新于 10-16 06:47

技能介绍

用途:为本地 Azure SQL Database 容器中已存在的 appdb 填充真实感样例数据。注意这是 Azure SQL 引擎镜像(Private Preview),不是 SQL Server 镜像;新建整个应用请用 azuresql-db-scaffold,恢复已有 .bacpac 请用 azuresql-db-import。

主要能力与要点:使用镜像 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest(x64 / linux/amd64),私有仓库需先 docker login。启动容器需 ACCEPT_EULA=Y 与复杂 MSSQL_SA_PASSWORD,监听 1433;非 x64 主机加 --platform linux/amd64。可用 SELECT SERVERPROPERTY('EngineEdition') 应为 5、Edition 应为 'SQL Azure'。引擎不自动建库,必须先在 master 连接执行 CREATE DATABASE appdb。不要用 USE appdb 切库(会返回 Msg 40508),应在连接串里指定 Database=appdb 或用 sqlcmd 的 -d appdb。

执行步骤:1)在 master 连接创建 appdb(如 docker exec sqldb /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "YourStr0ng_Passw0rd" -C -b -Q "IF DB_ID('appdb') IS NULL CREATE DATABASE appdb;")。2)按外键依赖顺序插入,先父后子,否则触发 Msg 547;不要为乱序加载而禁用约束。3)大批量行数用数字/计数表(tally)集合式生成,不用逐行循环,大插入包在显式事务中。4)按数据源与栈选择配方:多表 T-SQL、bcp 本地 CSV、Azure Blob 的 BULK INSERT、Node(@faker-js/faker + mssql)、Python(Faker + pyodbc);程序化插入必须参数化。

限制:引擎不读取本地文件,本地 BULK INSERT 会报 Msg 12713,需用 bcp 或 Blob;示例数据不得含真实 PII 或机密;种子脚本应幂等(IF NOT EXISTS/MERGE 或先删子再删父);工具最低版本 sqlcmd 1.10.0、bcp 18.6.0002.1、.NET SDK 8.0.421。其余细节暂未提供。