转载地址:http://www.cnblogs.com/Brambling/p/8000911.html
--开启 CLR
sp_configure 'clr enabled', 1;
RECONFIGURE WITH override
GO
--权限不够时,设置目标数据库为可信赖的,例如:Test
ALTER DATABASE ceshi SET TRUSTWORTHY ON
--修改数据库所有者为当前登录的用户,也可以为其他用户,例如:sa
EXEC sp_changedbowner 'sa'
USE ceshi
GO
CREATE ASSEMBLY SqlCLRHelper
--AUTHORIZATION sa --指定数据库所有者,默认为当前用户
FROM 'C:\myProject\sqlCLR\sqlCLR\bin\Release\sqlCLR.dll' --指定文件路径
WITH PERMISSION_SET = UNSAFE; --指定程序集的权限
--SAFE:无法访问外部系统资源;
--EXTERNAL_ACCESS:可以访问某些外部系统资源;
--UNSAFE:可以不受限制的访问外部系统资源
GO
--删除函数
DROP FUNCTION dbo.F_Replace
--删除程序集
DROP ASSEMBLY SqlCLRHelper
--查看程序集
SELECT * FROM sys.assemblies
SELECT * FROM sys.sql_modules
--注册函数
CREATE FUNCTION dbo.F_IsIntxt(@txt NVARCHAR(max),@regstr NVARCHAR(max),@restr NVARCHAR(max),@findstr NVARCHAR(max))
RETURNS int
WITH EXECUTE AS CALLER --用于在用户在执行函数的时候对引用的对象进行权限检查
AS
EXTERNAL NAME [SqlCLRHelper].[sqlCLR.SqlCLRHelper].[F_IsIntxt] --EXTERNAL NAME [注册的程序集名].[命名空间.类名].[方法名]
GO