sql server存储过程一个变量传入多个值
时间: 2023-07-01 07:05:19 浏览: 1030
mysql存储过程之返回多个值的方法示例
在 SQL Server 中,可以使用表值参数(Table-valued parameter)来传递多个值给存储过程。
首先,需要创建一个用户定义表类型(User-defined table type),用于定义传递的参数。例如,下面的代码定义了一个表类型 `MyTableType`,该类型包含一个 `Id` 列和一个 `Name` 列:
```
CREATE TYPE MyTableType AS TABLE (
Id INT,
Name VARCHAR(50)
);
```
然后,在存储过程中声明一个输入参数,类型为上面定义的 `MyTableType`,并在存储过程中使用该参数。例如,下面的代码定义了一个名为 `MyStoredProcedure` 的存储过程,该过程接受一个 `@myTableParameter` 参数,该参数是一个 `MyTableType` 类型的表值参数:
```
CREATE PROCEDURE MyStoredProcedure
@myTableParameter MyTableType READONLY
AS
BEGIN
-- 在这里使用 @myTableParameter 参数
END;
```
在调用存储过程时,可以使用 INSERT INTO 语句将要传递的值插入到一个表变量中,然后将该表变量作为参数传递给存储过程。例如,下面的代码演示了如何调用上面定义的 `MyStoredProcedure` 存储过程:
```
DECLARE @myTableVariable AS MyTableType;
INSERT INTO @myTableVariable (Id, Name)
VALUES (1, 'John'), (2, 'Jane'), (3, 'Bob');
EXEC MyStoredProcedure @myTableParameter = @myTableVariable;
```
注意:表值参数仅适用于 SQL Server 2008 及更高版本。
阅读全文