将默认值传递给Table Valued参数 – SQL Server

@H_301_1@我在一个存储过程中使用表值参数.这是我使用的语法:
@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.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03