我对数据库执行了以下命令,它给我消息命令成功完成。
USE XYZ
GO
DECLARE @clrName nvarchar(4000) = 'XYZCLRDatabase, ...';
DECLARE @asmBin varbinary(max) = <bindary>;
DECLARE @hash varbinary(64);
SELECT @hash = HASHBYTES('SHA2_512', @asmBin);
EXEC sys.sp_add_trusted_assembly @hash = @hash,
@description = @clrName;
GO
它还在sys.trusted_assemblies表中显示相同的记录。
但是它没有列在Assemblies文件夹中...
XYZ数据库>可编程性>程序集
[当我尝试使用以下代码创建存储过程时,出现错误。
USE XYZ
GO
CREATE PROCEDURE SPName @sqlXml XML, @flag1 bit, @flag2 bit, @id int null, @flag3 bit
AS
EXTERNAL NAME XYZCLRDatabase.StoredProcedures.MYClrSP
我收到以下错误消息:
Msg 6528, Level 16, State 1, Procedure SPName, Line 1 [Batch Start Line 23]
Assembly 'XYZCLRDatabase' could not be found in the SQL catalog for database 'XYZ'.
出了什么问题。...
您缺少CREATE ASSEMBLY指令。总之,在SQL Server中添加程序集的步骤是:
EXEC sp_configure 'clr enabled', 1;
ALTER DATABASE databaseName SET TRUSTWORTHY ON
这些步骤仅需要执行一次(数据库还原后也将需要执行步骤2)