AdventureWorks Cycles CLR 层

SQL Server 2005 的 AdventureWorks Cycles CLR Layer 示例提供了一些有用的实用工具,这些实用工具在基本的 AdventureWorks 示例数据库之上提供了一层额外的功能。 第一个实用工具为 AdventureWorks 数据库中所涉及各种类型的人创建联系记录。 联系信息通过使用 XML 来指定,并传递到基于 C# 的存储过程。 第二个实用工具使用 C# 定义 Currency 用户定义数据类型。 此用户定义数据类型封装了金额和区域,区域用于帮助确定一种正确的方式来将金额以该区域的货币值呈现。 第三个实用工具提供了返回 Currency 用户定义数据类型实例的货币转换函数。 如果 AdventureWorks 数据库包含从美元 (USD) 到与指定区域关联的货币的换算比率,那么转换函数返回的 Currency 用户定义数据类型中包含换算的比率以及与请求的区域相匹配的区域。 否则,返回的 Currency 用户定义数据类型包含原始金额(应是 USD)及 en-us 区域。 这些实用工具还说明如何使用 Transact-SQL 注册和撤消注册公共语言运行时 (CLR) 方法和程序集。

ms160866.note(zh-cn,SQL.90).gif注意:
此示例中使用的汇率是虚构的,不能用于实际财务事务。

默认的安装目录是 驱动器:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\AdventureWorks。

应用场景

  • 开发人员需要一种便捷方法来表示、保存和使用以各种货币表示的各种货币金额。
  • 开发人员需要一种便捷方法来创建雇员、单个客户、大量客户和供应商等的新联系信息,并将这些信息与 AdventureWorks 数据库中存储的其他信息关联起来。

语言

Transact-SQL、Visual C# 和 Visual Basic。

功能

SQLCLR 层示例使用 SQL Server 2005 中的以下功能。

应用领域 功能

联系

XML

货币、货币转换

CLR UDT、CLR 用户定义函数 (UDF)

必备组件

在运行此示例之前,请确保安装了下列软件:

  • SQL Server 2005 或 SQL Server 2005 Express Edition (SQL Server Express)。 您可以从 SQL Server 2005 Express Edition 文档和示例网站免费获取 SQL Server Express。
  • AdventureWorks 数据库,它随 SQL Server 2005 提供,也可以从 SQL Server 开发中心网站获取。
  • SQL Server 2005 数据库引擎示例。 这些示例包含在 SQL Server 2005 中。 您可以从 SQL Server 开发人员中心网站上下载这些示例的最新版本。
  • .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。 您可以免费获取 .NET Framework SDK。 请参阅安装 .NET Framework SDK

生成示例

如果尚未创建强名称密钥文件 SampleKey.snkUnsafeSampleKey.snk,则使用以下说明生成密钥文件。

生成强名称密钥文件

  1. 打开 Microsoft Visual Studio 2005 命令提示。 单击**“开始”,依次指向“所有程序”Microsoft Visual Studio 2005“Visual Studio 工具”,再单击“Visual Studio 2005 命令提示”**。

    - 或者 -

    打开 .NET Framework 命令提示。 单击**“开始”,依次指向“所有程序”Microsoft .NET Framework SDK 2.0,再单击“SDK 命令提示”**。

  2. 在命令提示符下,使用更改目录 (CD) 命令将命令提示窗口的当前文件夹改为 Samples 文件夹。

    ms160866.note(zh-cn,SQL.90).gif注意:
    若要确定示例所在的文件夹,请单击“开始”,依次指向“所有程序”Microsoft SQL Server 2005“文档和教程”,然后单击“示例目录”。 如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples 中。
  3. 在命令提示符下,运行以下命令以生成密钥文件:

    sn -k SampleKey.snk

    sn -k UnsafeSampleKey.snk

    ms160866.note(zh-cn,SQL.90).gif重要提示:
    有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。

若要生成示例,请执行以下操作:

生成示例

  1. 通过使用 Visual Studio 2005 和所提供的 Visual Studio 解决方案或通过使用 Microsoft MSBuild(包括在 .NET Framework SDK 2.0 中)来编译示例。 在命令提示符下运行与以下命令相似的命令:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\AdventureWorksCS.sln

  2. 确保安装了 AdventureWorks 数据库。

  3. 如果没有将 SQL Server 数据库引擎示例安装在默认位置,则将 Scripts\InstallCS.sql 中 CREATE ASSEMBLY 脚本部分中的路径修改为引用示例的安装位置。

  4. 如果您不是要使用的 SQL Server 实例的管理员,则必须让管理员授予您 CreateAssembly 权限,才能完成安装。

  5. 根据编译的是 Visual C# 项目还是 Visual Basic 项目,在 SQL Server Management Studio 中打开 scripts\installCS.sql 或 scripts\installVB.sql 文件。 运行该文件中包含的脚本,或在命令提示符下运行与以下命令相似的命令:

    sqlcmd -E -I -i Scripts\InstallCS.sql

    此脚本执行以下操作:

    • 删除所有要定义的存储过程(如果已存在)。
    • 删除已存在的程序集注册。
    • 注册程序集。
    • 注册 CLR 存储过程。

运行示例

若要运行示例,请执行以下操作:

运行示例

  1. 在 Management Studio 中加载 Scripts\test.sql 文件并运行它。 或在命令提示符下运行以下命令:

    sqlcmd -E -I -i Scripts\test.sql

删除示例

可使用以下过程删除 SQLCLR 层示例:

删除示例

  1. 在 Management Studio 中加载并运行 Scripts\cleanup.sql。 或在命令提示符下运行以下命令:

    sqlcmd -E -I -i Scripts\cleanup.sql

注释

为了使此示例正确运行,必须启用 SQL Server 2005 或 SQL Server 2005 Express Edition 的 CLR。

提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员允许,不得将示例应用程序和程序集与生产 SQL Server 数据库或报表服务器相连或一起使用。

请参阅

任务

Readme_Storefront

概念

CLR 可编程性示例

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2005 年 12 月 5 日

更改的内容:
  • 更改了有关生成密钥文件的说明,包括密钥文件的名称和位置。