据我所知,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来做到这一点,但是出于某些原因,我想避免这种情况。
答案 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)