有没有办法在 M1 Mac 上的 Ubuntu Docker 上使用 Azure SQL Edge 上的标准 CLR 函数?

Glo*_*del 6 sql-clr docker macos azure-sql-edge

我有一台配备 M1 芯片的 MacBook,因此(大约)我运行 SQL Server 的唯一选择是将其作为 Docker 容器运行。这对于标准 SQL 来说效果很好,但是我们的应用程序使用了一些 CLR 功能,例如COMPRESS;当我尝试使用它时,它告诉我

消息 50000,级别 16,状态 1,第 45 行 此实例上未启用公共语言运行时 (CLR)。

启用它不起作用:

EXEC sp_configure 'clr enabled', 1;  
RECONFIGURE;  
GO
Run Code Online (Sandbox Code Playgroud)

给出

消息 15392,级别 16,状态 1,过程 sp_configure,第 166
行 此版本的 SQL Server 不支持指定的选项“clrenabled”,并且无法使用 sp_configure 进行更改。

我发现了这篇 Stack Overflow 帖子,但那是关于某人使用自定义 .NET 库的;我正在寻找适用于 Windows 的 SQL Server 中可用的“标准”功能。

Aar*_*and 3

是的,现在有一个更简单的方法,从 Ventura(我在 13.3 上测试)和 Docker 4.16 开始。

\n
    \n
  1. 确保您使用的是 macOS Ventura - 我只知道它适用于 13.3,因为我现在可以\xe2\x80\x99t 测试任何内容

    \n
  2. \n
  3. 确保 Docker 是“Apple Chip”版本,4.16 或更高版本:

    \n
    \n

    获得合适的芯片

    \n
    \n
  4. \n
  5. Settings在>中启用“使用虚拟化框架” General

    \n
    \n

    启用“使用虚拟化框架”

    \n
    \n
  6. \n
  7. Settings在>下启用“使用 Rosetta for x86/amd64 Emulation\xe2\x80\xa6” Features in Development

    \n
    \n

    启用“使用 Rosetta 进行 x86/amd64 仿真\xe2\x80\xa6”

    \n
    \n
  8. \n
  9. Apply & Restart

    \n
  10. \n
  11. 创建一个新容器,添加重要--platform=linux/amd64参数;虽然它应该适用于集线器中的任何图像,但此命令适用于 SQL Server 2022,并且是我验证其有效的唯一命令:

    \n
    docker run --platform=linux/amd64           \\\n  -e ACCEPT_EULA=1                          \\\n  -e MSSQL_SA_PASSWORD=sTr0ng3st_p@ssw0rd!  \\\n  -p 1433:1433 -d                           \\     \n  mcr.microsoft.com/mssql/server:2022-latest\n
    Run Code Online (Sandbox Code Playgroud)\n
  12. \n
  13. 有效的证明COMPRESS()

    \n
    \n

    格罗芬德尔布丁

    \n
    \n
  14. \n
\n