在DBCC Checkident中使用内部查询

时间:2018-08-06 14:23:55

标签: sql sql-server

据我所知,DBCC Checkident使用以下三个参数:

DBCC checkident('myTable', reseed, id_to_reset)

我希望使用子查询来获取第三个参数,即id_to_reset,如下所示:

DBCC checkident('myTable', reseed, SELECT ISNULL(MIN(Id),0) FROM myTable2)

到目前为止,SQL Server抛出语法错误,但是我确定必须有某种方法。我知道我可以使用变量并传递checkident来做到这一点,但是出于某些原因,我想避免这种情况。 enter image description here

1 个答案:

答案 0 :(得分:0)

尝试首先将值放入变量:

DECLARE @id INT = (SELECT ISNULL(MIN(Id),0) FROM myTable2)

DBCC checkident('myTable', reseed, @id)

如果您需要重新设定多个表的种子,则可以在运行时覆盖该变量:

DECLARE @id INT = (SELECT ISNULL(MIN(Id),0) FROM myTable2)

DBCC checkident('myTable', reseed, @id)

SET @id = (SELECT ISNULL(MIN(Id),0) FROM myTable3)
DBCC checkident('myTable3', reseed, @id)