我在一个存储过程中使用表值参数.这是我使用的语法:
@districtlist NumericList readonly
(NumericList是用户定义的表类型).
但是,作为一项要求,我需要将默认值传递给此表值参数.
@districtlist NumericList = 0 readonly
解决方法
您可以选择不传递参数,即使没有为其定义默认值.例如:
CREATE TYPE TestTable AS TABLE (my_id INT) GO CREATE PROCEDURE dbo.Test_TVP @my_table TestTable READONLY,@my_int INT AS BEGIN SELECT * FROM @my_table END GO EXEC dbo.Test_TVP @my_int = 2 GO DROP PROCEDURE dbo.Test_TVP DROP TYPE TestTable
在这种情况下,表格将为空.如果您想要一些默认行,那么您可能必须在存储过程中模拟它,可能是通过使用临时表,因为表值参数必须是READONLY.