Sql Server 存储过程中的输入参数可以是临时表吗?

2025-03-13 23:48:32
推荐回答(2个)
回答1:

Sql Server 2008中存储过程可以传入表值参数, 参考下面的例子:

CREATE TYPE dbo.CategoryTableType AS TABLE
    ( CategoryID int, CategoryName nvarchar(50) )
CREATE PROCEDURE usp_UpdateCategories 
    (@tvpNewCategories dbo.CategoryTableType READONLY)
    as
    begin
    UPDATE dbo.Categories
    SET Categories.CategoryName = ec.CategoryName
    FROM dbo.Categories INNER JOIN @tvpEditedCategories AS ec
    ON dbo.Categories.CategoryID = ec.CategoryID;
    end

回答2:

2008以上的可以将表作为参数传递,但是需要自定义table的数据类型