gan*_*esh 0 sql t-sql sql-server tsqlt
我的文字: -
CREATE proc usp_delete
@tranid int
as
begin
delete from customer where tranid in(@tranid)
end
Run Code Online (Sandbox Code Playgroud)
注意: - 我想通过这个存储过程删除超过1条记录的记录,如: - 如果我通过1,2,3,4,5,6,那么应该删除所有6条记录
您可以使用table-valued parameter,您需要声明它
CREATE TYPE EntityId AS TABLE
( Id INT )
GO
CREATE PROCEDURE usp_delete
@tranid EntityId READONLY
AS
BEGIN
DELETE c
FROM customer c
JOIN @tranid t ON t.Id=c.tranid
END
Run Code Online (Sandbox Code Playgroud)
对于使用TVP执行声明一个类型的变量并将其传递给存储过程
DECLARE @entityId EntityId
INSERT INTO @entityId
VALUES(1),(2),(3),(4),(5)
EXEC usp_delete @entityId
Run Code Online (Sandbox Code Playgroud)