SQL Server 项目

更新:2007 年 11 月

除了 Transact-SQL 编程语言之外,还可以使用 .NET Framework 语言创建数据库对象(如存储过程和触发器),以及检索和更新 Microsoft SQL Server 2005 数据库的数据。与使用 Transact-SQL 相比,使用托管代码开发 SQL Server 的 .NET Framework 数据库对象具有很多优点。有关更多信息,请参见 使用托管代码创建数据库对象的好处

若要创建数据库对象,可以创建一个 SQL Server 项目,向该项目添加所需的项,然后为这些项添加代码。接着,将该项目生成到一个程序集中,并将其部署到 SQL Server。

说明:

默认情况下,公共语言运行时 (CLR) 集成功能在 Microsoft SQL Server 中处于关闭状态。若要使用 SQL Server 项目项,则必须启用该功能。若要启用 CLR 集成,请使用 sp_configure 存储过程的 clr enabled 选项。有关更多信息,请参见启用 CLR 集成

创建新项目

通过单击“文件”菜单,选择“项目”,然后在 “新建项目”对话框 中选择“SQL Server 项目”,即可创建一个新的 SQL Server 项目。有关更多信息,请参见如何:创建 SQL Server 项目

创建了新的 SQL Server 项目之后,将显示 “添加数据库引用”对话框。可使用该对话框向项目添加数据库引用或连接。可以在 服务器资源管理器/数据库资源管理器 中一个选择当前可用的数据库引用,也可以定义一个新的连接。只能为项目添加一个数据库引用。

项目属性

可以更改“程序集名称”,它是包含程序集清单的输出文件名称。如果更改程序集名称,则 SQL Server 数据库中数据库对象的名称也将随之更改。

将项添加到项目

新的 SQL Server 项目仅包含引用和程序集信息。若要创建数据库对象,则首先必须为项目添加项,然后为项添加代码。有关更多信息,请参见 SQL Server 项目的项模板

下表列出了可供添加的特定于 SQL Server 项目的项。

更多信息

存储过程

如何:创建和运行 CLR SQL Server 存储过程

触发器

如何:创建和运行 CLR SQL Server 触发器

用户定义的函数

如何:创建和运行 CLR SQL Server 用户定义的函数

用户定义的类型

如何:创建和运行 CLR SQL Server 用户定义的函数

聚合

如何:创建和运行 CLR SQL Server 聚合

生成、部署和调试

当生成项目时,该项目被编译为可部署到数据库的程序集,数据库在项目中引用和调试。

提示:

除了分三个独立的步骤进行生成、部署和调试外,也可以使用“启动”命令 (F5) 或“开始执行(不调试)”命令 (Ctrl+F5) 生成程序集,再将其部署到数据库并调试数据库对象。

在调试数据库对象之前,必须向 Test.sql(在 Visual C++ 中为“debug.sql”)项添加 Transact-SQL 代码。“Test.sql”项中的脚本在数据库中执行启动和测试数据库对象时必需的操作,因此对于调试非常重要。添加到项目中时,Test.sql 项包含在数据库中执行必需操作的脚本代码大纲。如果 SQL Server 项目包含多个数据库对象,则“Test.sql”项脚本必须运行每个数据库对象。

该调试脚本的要求与 Windows 窗体项目的要求不同,后者创建和运行独立的可执行程序;而数据库对象仅在响应数据库中的操作或调用时运行。例如,当在表中插入新行时,可能会激活触发器。因此,Test.sql 脚本必须将一个新行插入到表中以激活触发器。该触发器的结果显示在 Visual Studio 的“输出窗口”中,可以通过它确定触发器是否工作正常。

然后,向已添加到 SQL Server 项目的项和 Test.sql 项添加代码。在有关可用数据库项的主题中可找到每个数据库对象的示例代码。请参见上表。

生成 SQL Server 项目

当生成项目时,该项目被编译到程序集中。如果使用的是 Visual Basic,请执行以下步骤:

生成 Visual Basic SQL Server 项目

  1. 在“解决方案资源管理器”中选择项目。

  2. 在“生成”菜单上单击“生成 <项目名称>”。

如果使用的是 Visual C#、Visual C++ 或 Visual J#,请执行以下步骤:

生成 Visual C#、Visual C++ 或 Visual J# SQL Server 项目

  1. 在“解决方案资源管理器”中选择一个解决方案。

  2. 在“生成”菜单上,单击“生成解决方案”。

将程序集部署到数据库

当将程序集部署到项目中引用的数据库时,会建立与该数据库的连接,然后将程序集复制到该数据库,并在该数据库中注册程序集和设置属性。由于程序集被部署到服务器上的特定数据库,因此如果创建一个数据库引用,引用同一服务器上的不同数据库,则必须将该程序集部署到第二个数据库方可使用。

如果使用的是 Visual Basic,请执行以下步骤:

部署 Visual Basic SQL Server 类库程序集

  1. 在“解决方案资源管理器”中选择项目。

  2. 在“生成”菜单上单击“部署 <项目名称>”。

如果使用的是 Visual C#、Visual C++ 或 Visual J#,请执行以下步骤:

部署 Visual C#、Visual C++ 或 Visual J# SQL Server 类库程序集

  1. 在“解决方案资源管理器”中选择一个解决方案。

  2. 在“生成”菜单上单击“部署解决方案”。

调试数据库对象

当调试数据库对象时,程序集被生成、部署(到数据库)和调试。当对以前生成和部署的数据库对象进行调试时,只有在项目自上次生成后发生了更改时才会重新生成程序集。通常从数据库中删除该程序集并再复制一次。

调试数据库对象

  1. 在“解决方案资源管理器”中选择一个解决方案。

  2. 在“调试”菜单上单击“启动”。

  3. 在“输出”窗口的“显示以下输出”列表中,选择“数据库输出”以查看结果。

请参见

任务

如何:创建 SQL Server 项目

如何:创建和运行 CLR SQL Server 存储过程

如何:创建和运行 CLR SQL Server 触发器

如何:创建和运行 CLR SQL Server 聚合

如何:创建和运行 CLR SQL Server 用户定义的函数

如何:创建和运行 CLR SQL Server 用户定义的类型

演练:使用托管代码创建存储过程

如何:调试 SQL CLR 存储过程

概念

SQL Server CLR 集成简介

使用托管代码创建数据库对象的好处

SQL Server 项目的项模板

参考

SQL Server 项目和数据库对象的属性

其他资源

SQL CLR 数据库调试