【发布时间】:2020-11-16 09:02:59
【问题描述】:
有没有办法为表值类型设置IDENTITY_INSERT ON?处理表格的方式 - 不起作用。
CREATE TYPE dbo.tvp_test AS TABLE
(
id INT NOT NULL IDENTITY(1, 1),
a INT NULL
);
GO
DECLARE @test dbo.tvp_test;
SET IDENTITY_INSERT @test ON;
INSERT INTO @test VALUES (1, 1);
DROP TYPE dbo.tvp_test;
错误:
消息 102,第 15 级,状态 1,第 13 行
'@test' 附近的语法不正确
【问题讨论】:
-
IDENTITY_INSERT允许您专门更改表,而不是变量。如果您需要一种具有IDENTITY的类型,而另一种没有,则需要两种类型。 -
你到底为什么想要那个?恕我直言,仅在将数据从一个表复制到另一个表时才应使用身份插入。至少,我似乎想不出任何其他有效的用例。
-
@ZoharPeled 因为我希望在一种情况下自动生成此序列并在另一种情况下进行预定义
标签: sql-server identity-insert