Sql server SQL Server创建程序集

Sql server SQL Server创建程序集,sql-server,sqlclr,Sql Server,Sqlclr,我使用命令: CREATE ASSEMBLY [xxxx] from 'my dll path ' WITH PERMISSION_SET = UNSAFE; 但我有一个错误: 找不到system.web,版本=4.0.0.0 为什么我需要.net framework dll?我不明白 sql server已安装.net framework。sql server的内部CLR主机(即SQLCLR)是一个高度受限的环境。它不像使用操作系统的CLR主机(即控制台应用程序和Windows/桌面应用程

我使用命令:

CREATE ASSEMBLY [xxxx] from 'my dll path ' 
WITH PERMISSION_SET = UNSAFE;
但我有一个错误:

找不到system.web,版本=4.0.0.0

为什么我需要.net framework dll?我不明白


sql server已安装.net framework。

sql server的内部CLR主机(即SQLCLR)是一个高度受限的环境。它不像使用操作系统的CLR主机(即控制台应用程序和Windows/桌面应用程序,这是大多数程序员所习惯的),更接近于创建一个web应用程序,其中有共享资源,不使用UI功能等东西。SQL Server的CLR中包含库的简短列表:。其他.NET Framework库,如
System.Web
,如果可以加载,则需要手动加载。一般来说,最好避免这样的事情,因为这样做很容易陷入麻烦。有关一般使用SQLCLR的更多信息,请参阅我在SQLServerCentral上就此主题撰写的一系列文章(阅读该站点上的内容需要免费注册):


在您的情况下,如果需要连接到网页或web服务,您最好使用
HttpWebRequest
HttpWebResponse
,因为它们包含在支持的库中,只需要
外部访问
,而不需要
不安全的

创建程序集
创建数据库对象来保存.NET程序集-因此您确实需要SQL Server内置的.NET当然是框架。但是,SQL CLR不包括
System.Web
程序集,该程序集主要包含基于Web表单的GUI控件—实际上,SQL Server代码中不需要任何东西。但是,正如错误所述——您试图进入SQL Server的程序集显然引用了
System.Web
依赖关系——去掉它,您应该会很好的谢谢,我现在很清楚了