Azure SQL Edge 不支持指定的选项“clr 已启用”

问题描述 投票:0回答:3

我是一名 .NET 开发人员,也是 mac (m1 pro) 的新手。我使用 docker 并拉取 azure-sql-edge 图像。当我尝试创建包含

geometry
列的表或在代码优先解决方案生成的
geometry
类型列中插入值时,遇到以下错误:

此实例上未启用公共语言运行时 (CLR)。

我尝试通过运行

exec sp_configure 'clr enabled',1
来启用CLR,但遇到了以下错误:

此版本不支持指定选项“clrenabled” SQL Server 且无法使用 sp_configure 进行更改。

该怎么办?请帮助我。

sql-server macos apple-m1 sqlclr azure-sql-edge
3个回答
8
投票

基于 CLR 的功能 — 是否是实例级“CLR 集成”选项(支持自定义/用户创建的程序集);数据类型

geometry
geography
hierarchyid
;内置函数,如
COMPRESS
DECOMPRESS
FORMAT
AT TIMEZONE
;或一些其他功能 - 在 Azure SQL Edge 中不可用。没有办法解决这个问题(至少目前没有)。如果需要任何此功能,则不能选择使用 Azure SQL Edge 作为平台。 (是的,有点糟糕,但就是这样。)

附注基于 CLR 的数据类型和内置函数通过

sp_configure 'clr enabled'
控制。如果它们在平台上可用,则无法禁用它们(除了启用光纤模式/轻量级池之外,这不是任何人都应该做的事情)。


0
投票

Mac Silicon 用户的解决方法:

  1. 如果尚未安装 Docker Desktop,请安装
  2. 在设置 -> 常规 -> 应选中“使用虚拟化框架”
  3. 在设置 -> 开发中的功能 -> 应选中“在 Apple Silicon 上使用 Rosetta 进行 x86/amd64 模拟”
  4. 不要使用 Azure-SQL-Edge 映像,而是使用 SQL2019 映像。 IE。从终端运行:
    docker run --name SQLExpress2019 -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=yourStrong(!)Password" -e "MSSQL_PID=Express" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

注意事项:

  • 将密码更改为其他密码。
  • 也可以尝试 2022 年而不是 2019 年。
  • Express 版是可选的。
  • Docker 将显示仿真警告,但它仍然有效

0
投票

正如其他人在 SQL2019 映像中所建议的,支持 CLR

  1. 拉取命令:docker pull mcr.microsoft.com/mssql/server:2019-latest
  2. docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/mssql/server:2019-最新

如果此运行命令不起作用(但绝对应该起作用),那么:

Docker 网站 -> 搜索“Azure SQL Edge” -> 微软官方的“Azure SQL Edge” -> 在这里你可以找到运行命令。

复制命令并在命令中进行更改,即必须提及末尾“mcr.microsoft......”,将其替换为“mcr.microsoft.com/mssql/server:2019-latest”

© www.soinside.com 2019 - 2024. All rights reserved.