当我尝试在新服务器中创建以下存储过程时,出现错误
Msg 6528,Level 16,State 1,Procedure usp_BulkCopy,Line 3
在数据库'master'的SQL目录中找不到程序集'SqlBulkCopy'。
代码:
USE [master]
GO
/****** Object: StoredProcedure [dbo].[usp_BulkCopy] Script Date: 08/22/2012 23:32:59 ******/
CREATE PROCEDURE [dbo].[usp_BulkCopy]
@sourceServer [nvarchar](255),
@sourceDatabase [nvarchar](255),
@sourceSelectQuery [nvarchar](4000),
@destinationServer [nvarchar](255),
@destinationDatabase [nvarchar](255),
@destinationTable [nvarchar](255),
@FlagKeepIdentity [bit],
@throwExceptionOnErrors [bit],
@SourceTrusted [bit],
@DestTrusted [bit],
@SourceUser [nvarchar](255),
@SourcePass [nvarchar](255),
@DestUser [nvarchar](255),
@DestPass [nvarchar](255)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SqlBulkCopy].[StoredProcedures].[usp_BulkCopy]
GO
我如何克服这个问题?我不确定会是什么,如果它确实是一个真正的问题。
谢谢你的时间..
答案 0 :(得分:0)
感谢Marc S.这是集会。
希望它可以帮助别人。这是我所做的细节。
我从另一个数据库服务器找到了程序集并在此服务器上运行它,如下所示:
CREATE ASSEMBLY [SqlBulkCopy]
AUTHORIZATION [dbo]
FROM
[CODE in Hexadecimals-this would be unique I think]
然后我必须这样做:
ALTER DATABASE [master] SET TRUSTWORTHY ON
然后这个:
sp_configure 'clr enabled',1
GO
RECONFIGURE
GO
sp_configure 'clr enabled' -- make sure it took
GO
就是这样。它运作良好:
要确保已安装程序集,您可以运行:
SELECT * FROM sys.assemblies