ove*_*ing 3 sql sql-server-2008-r2
我刚刚使用 Microsoft SQL Server 2008 R2 启动 SQL,我想选择一个 Id 列表并通过存储过程运行每个 Id,但不知道如何执行。
SELECT Id
FROM UserId
WHERE ProgramId = @ProgramId
Run Code Online (Sandbox Code Playgroud)
然后,我创建了一个名为temp_sp_UpdateIds
通常我可以运行存储过程
EXEC temp_sp_UpdateIds @ProgramId
Run Code Online (Sandbox Code Playgroud)
但我不确定如何使用从 select 语句返回的 Id 列表运行存储过程并将其放在@ProgramId
我需要将 Id 存储在本地表中吗?
谢谢。
您可以使用表值参数
创建表类型和 SP
CREATE TYPE dbo.ListOfIds AS TABLE(Id int PRIMARY KEY)
GO
CREATE PROCEDURE dbo.temp_sp_UpdateIds
(
@ListOfIds dbo.ListOfIds READONLY
)
AS
BEGIN
...body of procedure
END
GO
Run Code Online (Sandbox Code Playgroud)
使用表值参数调用过程
DECLARE @ListOfIds dbo.ListOfIds
INSERT @ListOfIds
SELECT Id
FROM UserId
WHERE ProgramId = @ProgramId
EXEC dbo.temp_sp_UpdateIds @ListOfIds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |