假设我有两列用户定义表类型

CREATE TYPE [Schema].[Type] AS TABLE (
    [Name]         NVARCHAR (100) NULL
    [Value]         int NULL
);


进一步假设我已经将表类型传递给了存储过程

CREATE PROCEDURE [Schema].[sp_SomeProcedure]
@TVP [Type] READONLY
AS
SELECT
[Name]
,1 + [Value]
FROM
@TVP


我可以将@TVP的值默认为

(SELECT 'John', 1)

最佳答案

您可以在调用该过程时为TVP使用“ DEFAULT”关键字。这将传递该类型的空表。

示例-如果TVP是传递给过程的第二个参数:

    Exec myProcedure (intParam, DEFAULT)

08-28 02:34