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')