用途:在代码内用 Testcontainers 启动真实 Azure SQL Database 容器(Private Preview),预置 appdb 后运行集成测试,最后销毁容器。与 azuresql-db-ci 不同,后者是通过工作流 YAML 把同一引擎接入 CI 流水线;若是 CI 作业而非代码内测试搭建,应改用 azuresql-db-ci。
主要能力:使用引擎镜像 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest(x64 专用,非 x64 主机需设置 platform 为 linux/amd64),验证 EngineEdition 为 5、Edition 为 SQL Azure;支持原生 VECTOR(n) 类型与 VECTOR_DISTANCE('cosine', a, b);提供按语言配方(.NET/xUnit、Node/Jest、Python/pytest、Java/JUnit 5),见 references/testcontainers-snippets.md。
必要用法:先 docker login sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io,可选 docker pull 预热;凭据通过 https://aka.ms/sqldbcontainerpreview-signup 注册获取,可能轮换。以通用容器方式从镜像启动,设置 ACCEPT_EULA=Y 和复杂 MSSQL_SA_PASSWORD(至少 8 位且含大写、小写、数字、符号中至少三类),暴露容器 1433。必须附加就绪等待策略(日志、端口或 SELECT 1),不能固定 sleep。就绪后在 master 连接执行 IF DB_ID('appdb') IS NULL CREATE DATABASE appdb;用映射后的主机端口拼连接串(User Id=/Password=/Database=/TrustServerCertificate=true),不要硬编码 1433,也不要用 USE 切换数据库(会返回 Msg 40508)。容器可按套件或每个测试创建,结束须销毁。
限制:镜像为私有预览、仅 x64;向量维度必须写为字面量,不能用绑定参数;Testcontainers 的 MsSql 预设与 mcr.microsoft.com/mssql/server 不可使用。若规则不满足或被迫偏离,应载入 azuresql-db-feedback 并提供报告。官方文档可用时可通过 Microsoft Learn MCP 获取最新版本。