WEB开发网
开发学院数据库MSSQL Server SQL Server 2008数据库中如何使用表值参数 阅读

SQL Server 2008数据库中如何使用表值参数

 2008-09-27 10:05:19 来源:WEB开发网   
核心提示: 正如前面提到的,变量不能超出它的有效的范围,SQL Server 2008数据库中如何使用表值参数(3),如果T-SQL脚本由多个批处理组成,变量只有在批处理内才能创建并有效使用,我们对创建表值变量,对变量进行赋值,3、使用变量作为参数 到目前为止,我们还没有看到经常表变量无法实现的功能

正如前面提到的,变量不能超出它的有效的范围。如果T-SQL脚本由多个批处理组成,变量只有在批处理内才能创建并有效使用。

3、使用变量作为参数

到目前为止,我们还没有看到经常表变量无法实现的功能。其好处是能够将变量作为参数传给存储过程。当然一个存储过程必须先建立,使用新的类型作为其中的一个参数。

下面这个例子,通过代码创建一个常规表,并对其填充记录。

USE [Test]
GO
CREATE TABLE [dbo].[MyTable] (
[col1] [int] NOT NULL PRIMARY KEY,
[col2] [varchar](20) NULL,
[col3] [datetime] NULL,
[UserID] [varchar] (20) NOT NULL
)
GO
CREATE PROC usp_AddRowsToMyTable @MyTableParam MyType READONLY,
@UserID varchar(20) AS
NSERT INTO MyTable([col1],[col2],[col3],[UserID])
SELECT [col1],[col2],[col3],@UserID
FROM @MyTableParam
GO

请注意表值参数后面带了个READONLY参数。这是必需的,不能在例程体中对表值参数执行诸如 UPDATE、DELETE 或 INSERT 这样的 DML 操作。

最后,我们对创建表值变量,对变量进行赋值,并调用存储过程。

DECLARE @MyTable MyType
INSERT INTO @MyTable(col1,col2,col3)
VALUES (1,'abc','1/1/2000'),
(2,'def','1/1/2001'),
(3,'ghi','1/1/2002'),
(4,'jkl','1/1/2003'),
(5,'mno','1/1/2004')
EXEC usp_AddRowsToMyTable @MyTableParam = @MyTable, @UserID = 'Kathi'
SELECT * FROM MyTable

上一页  1 2 3 4  下一页

Tags:SQL Server 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接