我需要创建一个带有标识种子的表变量,该标识种子以另一个表中字段的最大值开头?
我试过这个:
DECLARE @IdentitySeed int
SET @IdentitySeed = (SELECT MAX(HHRecId) +1 FROM xxx )
DECLARE @HH TABLE (
HHId INT IDENTITY(@IdentitySeed,1)
,AddressType CHAR(1)
,Address1 VARCHAR(100)
,City VARCHAR(50)
,State VARCHAR(2)
,Zip VARCHAR(5)
,LastName VARCHAR(50)
)
但这会产生语法错误。
目前,我已向表变量添加了另一个 int 列,并使用标识列和 @IdentitySeed 的总和进行更新,但我想找到一种无需更新即可完成此操作的方法。
您可以使用以下命令检查 IDENTITY 列的当前值:
DBCC CHECKIDENT (#HH)
您也可以稍后使用以下命令更改它:
DBCC CHECKIDENT (#HH, RESEED, 42)
这也适用于新值的变量:
DBCC CHECKIDENT (#HH, RESEED, @IdentitySeed)
它适用于本地和全局临时表(即CREATE TABLE #HH (...)
or CREATE TABLE ##HH (....)
- 但它似乎不适用于表变量:-(
抱歉,您似乎无法使用表变量执行此操作......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)