专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 如何:创建和运行 CLR SQL Server 用户定义的 »正文

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

来源: 发布时间:星期二, 2009年2月3日 浏览:25次 评论:0
="t18">通过向 SQL Server 项目添加“用户定义”创建用户定义 SQL 部署成功后并执行用户定义

注意
在默认情况下Microsoft SQL Server 中关闭了公共语言运行库 (CLR) 集成功能必须启用该功能才能使用 SQL Server 项目项若要启用 CLR 集成请使用 sp_configure 存储过程“启用 clr”选项有关更多信息请参见启用 CLR 集成

注意
显示对话框和菜单命令可能会和帮助中描述区别具体取决于您现用设置或版本若要更改设置请在“工具”菜单上选择“导入和导出设置”有关更多信息请参见 Visual Studio 设置


创建用户定义 SQL Server
使用 Visual Studio 建立和部署此
打开个现有“SQL Server 项目”或者创建个新项目有关更多信息请参见如何:创建 SQL Server 项目

从“项目”菜单中选择“添加新项”

在“添加新项”对话框 中选择“用户定义

键入新用户定义“名称”

添加执行用户定义时运行代码请参见下面个举例

注意
C 举例在编译时必须使用 /clr:safe 编译器选项


对于 Visual Basic 和 Visual C#在“解决方案资源管理器”中打开“TestScripts”文件夹然后双击“Test.sql”文件以打开它进行编辑添加执行您用户定义代码请参见下面第 2个举例

对于 Visual C在“解决方案资源管理器”中双击“debug.sql”文件以打开它进行编辑添加执行您用户定义代码请参见下面第 2个举例

将用户定义部署到 SQL Server有关更多信息请参见如何:将 SQL Server 项目项部署到 SQL Server 中

按 F5 通过在 SQL Server 上执行用户定义来对其进行调试

下面代码举例创建用户定义将价格作为参数标量 addTax添加销售税并返回价格和销售税加和

创建该将其部署到 SQL Server有关更多信息请参见如何:将 SQL Server 项目项部署到 SQL Server 中

Visual Basic 复制代码
Imports .Data.SqlTypes
Imports Microsoft.SqlServer.Server

Partial Public Class UserDefinedFunctions

Public Const SALES_TAX As Double = 0.086

<SqlFunction> _
Public Shared Function addTax(ByVal originalAmount As SqlDouble) As SqlDouble

Dim taxAmount As SqlDouble = originalAmount * SALES_TAX

Return originalAmount + taxAmount
End Function
End Class
C# 复制代码
using .Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial UserDefinedFunctions
{
public const double SALES_TAX = .086;

[SqlFunction]
public SqlDouble addTax(SqlDouble originalAmount)
{
SqlDouble taxAmount = originalAmount * SALES_TAX;

originalAmount + taxAmount;
}
}
C 复制代码
# "stdafx.h"

#using <.dll>
#using <.Data.dll>
#using <.Xml.dll>

using ;
using ::Data;
using ::Data::Sql;
using ::Data::SqlTypes;
using Microsoft::SqlServer::Server;

// In order to debug your Aggregate, add the following to your debug.sql file:
//
// SELECT dbo.addTax(10)
//

public ref UserDefinedFunctions
{
public:
initonly double SALES_TAX = 0.086;

[SqlFunction]
SqlDouble AddTax(SqlDouble originalAmount)
{
SqlDouble taxAmount = originalAmount * SALES_TAX;

originalAmount + taxAmount;
}
};

向您项目中 TestScripts 文件夹中 Test.sql(在 Visual C 中为 debug.sql)文件添加用于测试用户定义代码例如若要测试此请使用查询如“SELECT dbo.addTax(10)”您应见到返回值“10.86”

复制代码
SELECT dbo.addTax(10)

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: