Readme_MARS
更新日期: 2006 年 7 月 17 日
此示例说明如何使用多个活动结果集 (MARS) 功能。通过 MARS 您可以在同一个连接上运行多个命令,即使运行一个或多个命令得到的所有结果可能不会完全返回至客户端。
提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员允许,不得将示例应用程序和程序集与生产 SQL Server 数据库或报表服务器相连或一起使用。
默认位置:驱动器:\Program Files\Microsoft SQL Server\90\Samples\Engine\
Data Access\ADO\MARS
应用场景
由于油漆成本增加导致自行车价格上涨,因此 AdventureWorks Cycles 希望提高标准成本并列出最受欢迎的自行车的价格。价格的增长将根据油漆颜色的不同而不同。
语言
Transact-SQL、Visual C# 和 Visual Basic。
功能
MARS 示例使用 SQL Server 2005 和 Microsoft .NET Framework 2.0 版的以下功能:
应用领域 | 功能 |
---|---|
整体 |
MARS、ADO.NET 2.0、Transact-SQL 存储过程 |
必备组件
在运行此示例之前,请确保安装了下列软件:
- SQL Server 2005 或 SQL Server 2005 Express Edition (SQL Server Express)。您可以从 SQL Server 示例和下载网站上下载 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。
生成示例
如果尚未创建强名称密钥文件,则请使用以下说明生成该密钥文件。
生成强名称密钥文件
打开 Microsoft Visual Studio 2005 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”。
- 或 -
打开 Microsoft .NET Framework 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”。
使用更改目录命令 (CD) 将命令提示符窗口的当前目录更改至安装示例的文件夹。
注意: 若要确定示例所在的文件夹,请单击“开始”按钮,依次指向“所有程序”、“Microsoft SQL Server”、“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples 中。 在命令提示符下,运行以下命令以生成密钥文件:
sn -k SampleKey.snk
重要事项: 有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。
若要生成示例,请执行以下操作:
生成示例
使用 Visual Studio 和位于
CS
目录中的解决方案文件,或在 .NET Framework 或 Microsoft Visual Studio 2005 命令提示符窗口中使用以下 MSBuild 命令行,来编译该示例:msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ MARS.sln
运行示例
若要运行示例,请执行下列步骤:
运行示例
在 SQL Server Management Studio 中打开
scripts\install.sql
脚本。运行该文件的内容,或在命令提示符窗口中运行以下命令:sqlcmd -E -I -i Scripts\install.sql
在命令提示符窗口中,找到
CS\MARS\bin\debug
目录,然后运行以下命令:mars
删除示例
若要重置此示例修改的数据并删除示例,请执行以下操作:
删除示例
在 Management Studio 中打开
Scripts\cleanup.sql
脚本。运行该文件的内容,或在命令提示符窗口中运行以下命令:sqlcmd -E -I -i Scripts\cleanup.sql
注释
请务必考虑在服务器端查询或更新中使用 JOIN 是否比使用 MARS 更有效。例如,您需要了解 2004 年 3 月每个销售订单详细记录的销售订单 ID、客户 ID、产品号、订单数量和行项合计值。尽管您可以在查询中使用 MARS,但事实证明在查询中使用 JOIN 更有效。
SELECT SOH.SalesOrderID, SOH.CustomerID, SOD.ProductID,
SOD.OrderQty, SOD.LineTotal
FROM Sales.SalesOrderHeader as SOH
JOIN Sales.SalesOrderDetail as SOD
ON SOH.SalesOrderID = SOD.SalesOrderID
WHERE SOH.OrderDate >= CONVERT(datetime, '20040301')
AND SOH.OrderDate < CONVERT(datetime, '20040401')
ORDER BY SOH.SalesOrderID;
更改历史记录
发布日期 | 历史记录 |
---|---|
2005 年 12 月 5 日 |
|