如何使用SQL CLR表值函数进行扩展
2007-12-27 15:30:25 来源:WEB开发网核心提示:4.选择“启用 CLR 集成”,此外,如何使用SQL CLR表值函数进行扩展(5),您可以在 SQL Server 中运行以下查询(此查询需要 ALTER SETTINGS 权限):USE mastersp_configure 'show advanced options', 1
4.选择“启用 CLR 集成”。
此外,您可以在 SQL Server 中运行以下查询(此查询需要 ALTER SETTINGS 权限):
USE master
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
开发表值函数:
若要开发表值函数,请在 Visual Studio 中创建一个新的 SQL Server 项目。若要创建 SQL Server 项目,请打开“新建项目”对话框,展开 Visual C#,然后选择“数据库”。此时,系统会提示您输入数据库连接信息。有关详细信息,请参阅 SQL Server 2005 联机丛书中的如何:创建 SQL Server 项目。在您建立了数据库连接后,就可以编写表值函数了。在项目中创建一个空白 .cs 文件,文件名为 EventLog.cs,然后将示例函数从前一部分复制并粘贴到该文件中。
部署表值函数:
若要部署,您必须向 SQL Server 实例注册该函数和包含它的程序集。这一操作可通过 Transact-SQL 命令完成。以下脚本会注册 tvfEventLogs 程序集和 ReadEventLog 函数:
CREATE ASSEMBLY tvfEventLog
FROM'D:assemblies vfEventLog vfeventlog.dll'
WITH PERMISSION_SET = SAFE
GO
CREATE FUNCTION ReadEventLog(@logname nvarchar(100))
RETURNS TABLE (logTime datetime,Message nvarchar(4000),
Category nvarchar(4000),InstanceId bigint)
AS EXTERNAL NAME tvfEventLog.TabularEventLog.InitMethod GO
此外,您还可以在解决方案资源管理器中右键单击相应的项目,并选择“部署”选项,直接从 Visual Studio 中部署您的程序集。Visual Studio 会使用 SqlFunction 属性来自动确定函数签名和其他必需的元数据。
赞助商链接