【发布时间】:2014-04-08 07:37:06
【问题描述】:
上下文:SQL Server 2012
Microsoft SQL Server Management Studio 11.0.3128.0
Microsoft Data Access Components (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 4.0 5.0 6.0
Microsoft Internet Explorer 9.11.9600.16521
Microsoft .NET Framework 4.0.30319.18444
Operating System 6.1.7601
当我在 SSMS 中执行查询时
select * from sys.dm_clr_properties
然后被告知
directory C:\Windows\Microsoft.NET\Framework\v2.0.50727\
version v2.0.50727
state CLR is initialized
如何将 dm_clr_properties 设置为 .NET v4?镇上的服务器也在运行 SQLServer 2012,并以有关 v4 的详细信息响应相同的选择语句。
【问题讨论】:
-
对不起,您在哪里谈论管理工作室? SSMS 查询根本不是 SSMS 查询 - 它是发送到 SQL Server 的查询,因此输出是 - SQL Server 输出,而不是 ssms 运行的内容。在您的情况下,SQL Server 似乎运行 .net 2.0
-
公平评论。我根本不是 SQLServer 大师……远非如此。我只是想弄清楚如何让在 SQLServer 2012 上运行的本地 32 位 SSMS 像在 SQLServer 2012 上运行的远程 64 位 SSMS 一样工作。但是已经实现了......
-
更多背景故事:我正在尝试构建一个 CLR 存储过程。在本地在 NET v2 中开发它然后尝试在 v4 上远程运行它会很不愉快……这是行不通的。
-
但是SSMS根本无法执行SP。 SSMS 只是服务器的前端。当您要求“从 sys.dm_clr_properties 中选择 *”时,SSMS 没有执行任何操作 - 它正在将此字符串发送到您连接的服务器,然后显示结果。因此,无论 SSMS 运行什么都是无关紧要的,这个 select 的返回与 SSMS 运行什么无关。
-
因此,您的本地管理工作室可能是 2012 年,但您运行查询的服务器仍然是 2005 年。您需要 2012 或 2014 才能使用较新版本的 .NET 框架。
标签: .net sql-server sql-server-2012 sqlclr