我是一名 .NET 开发人员,也是 mac (m1 pro) 的新手。我使用 docker 并拉取 azure-sql-edge 图像。当我尝试创建包含
geometry
列的表或在代码优先解决方案生成的 geometry
类型列中插入值时,遇到以下错误:
此实例上未启用公共语言运行时 (CLR)。
我尝试通过运行
exec sp_configure 'clr enabled',1
来启用CLR,但遇到了以下错误:
此版本不支持指定选项“clrenabled” SQL Server 且无法使用 sp_configure 进行更改。
该怎么办?请帮助我。
基于 CLR 的功能 — 是否是实例级“CLR 集成”选项(支持自定义/用户创建的程序集);数据类型
geometry
、geography
和 hierarchyid
;内置函数,如 COMPRESS
、DECOMPRESS
、FORMAT
、AT TIMEZONE
;或一些其他功能 - 在 Azure SQL Edge 中不可用。没有办法解决这个问题(至少目前没有)。如果需要任何此功能,则不能选择使用 Azure SQL Edge 作为平台。 (是的,有点糟糕,但就是这样。)
附注基于 CLR 的数据类型和内置函数不通过
sp_configure 'clr enabled'
控制。如果它们在平台上可用,则无法禁用它们(除了启用光纤模式/轻量级池之外,这不是任何人都应该做的事情)。
Mac Silicon 用户的解决方法:
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
注意事项:
正如其他人在 SQL2019 映像中所建议的,支持 CLR
如果此运行命令不起作用(但绝对应该起作用),那么:
Docker 网站 -> 搜索“Azure SQL Edge” -> 微软官方的“Azure SQL Edge” -> 在这里你可以找到运行命令。
复制命令并在命令中进行更改,即必须提及末尾“mcr.microsoft......”,将其替换为“mcr.microsoft.com/mssql/server:2019-latest”