SQL Server CLR 啟用、部署

洪岐發表於2011-12-10
sqlserver啟用CLR
exec sp_configure 'clr enabled',1 --1,啟用clr 0,禁用clr
RECONFIGURE

SQL Server CLR 部署到某個資料庫後,便成為那個資料庫的一部分,即便備份及還原到其它機器上,它依然具有CLR帶來的功能。
SqlString 資料型別轉換成 nvarchar(4,000),而 SqlChars 轉換成 nvarchar(max)。儘可能使用 nvarchar(max) 並且最大程度地保證靈活性。然而,如果所有相關字串包含的字元都少於 4,000 個,使用 nvarchar(4,000) 則效能可得到顯著改善。
CLR裡返回的bool對應SQL Server裡的bit,即:1/0/Null,而不是true/false,所以,沒法直接用dbo.ContainsOne(txtContent,'柳永法')實現bool形,而得這麼用:dbo.ContainsOne(txtContent,'柳永法')=1

 

新增CLR到資料庫中

CREATE ASSEMBLY [MyCLR]

AUTHORIZATION [dbo]
FROM
……DLL檔案二進位制流,從用VS部署好的資料庫上生成出來的即可
WITH PERMISSION_SET = SAFE
GO

對映函式

CREATE FUNCTION [dbo].[Encrypt](@encryptString [nvarchar](4000), @key [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [ MyCLR ].[UserDefinedFunctions].[Encrypt]
GO 

檢測是否可用

SELECT dbo. Encrypt('sadfsadf','12345678')

相關文章