SQL Server 2000通过OPENXML可以实现这个功能,用户可以把数据存储为VARCHAR数据类型然后进行传递。到了SQL Server 2005,随着 XML数据类型以及XQuery的出现,这个功能变得容易一点。但用户仍然需要对XML数据进行组建和粉碎才能够使用它,因此这个功能使用起来并不简单。SQL Server 2008则能够把表值数据类型传递到存储过程和功能中,从而大大地简化了编程的工作,因为程序员无需再花心思去组建和解析XML数据了。该功能还可以让客户方开发员传递客户方数据表格到数据库中。
如何传递表格参数?
以销售为例,首先建立一个 my SalesHistory表格,里面包含了产品销售的信息。写以下脚本就可以在数据库里创建你选择的表格:
以下为引用的内容:
IFOBJECT_ID('SalesHistory')>0
DROPTABLESalesHistory;
GO
CREATETABLE[dbo].[SalesHistory]
(
[SaleID][int]IDENTITY(1,1)NOTNULLPRIMARYKEY,
[Product][varchar](10)NULL,
[SaleDate][datetime]NULL,
[SalePrice][money]NULL
)
GO
以下为引用的内容:
CREATEPROCEDUREusp_InsertBigScreenProducts
(
@TableVariableSalesHistoryTableTypeREADONLY
)
AS
BEGIN
INSERTINTOSalesHistory
(
Product,SaleDate,SalePrice
)
SELECT
Product,SaleDate,SalePrice
FROM
@TableVariable
WHERE
Product='BigScreen'
END
GO