"字符串或二进制数据将被截断"在DBCC CHECKIDENT

时间:2016-11-08 23:46:26

标签: sql-server database tsql identity dbcc

我得到一个"字符串或二进制数据将被截断"我尝试重置身份时出错。

Declare @tableNameWithSchema varchar(max)
SET  @tableNameWithSchema = '[' + @table_schema + '].[' + @tablenamee + ']'
DBCC CHECKIDENT (@tableNameWithSchema, RESEED, 0)

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

通过反复试验方法,我发现了问题:DBCC CHECKIDENT没有varchar(max)。它应该是varchar(100)。虽然我不明白为什么MAX是错的。如果有人知道为什么请告诉我们。

以下代码有效:

declare @tableNameWithSchema varchar(100)
SET  @tableNameWithSchema = '[' + @table_schema + '].[' + @tablenamee + ']'
DBCC CHECKIDENT (@tableNameWithSchema, RESEED, 0) 

我保留这篇文章,以便它可能对其他人有用。

答案 1 :(得分:0)

Declare @tableNameWithSchema varchar(max),@table_schema VARCHAR(100) = 'dbo',@tablename VARCHAR(100) = 'Your_TableName' 
SET  @tableNameWithSchema = '[' + @table_schema + '].[' + @tablename + ']'
DBCC CHECKIDENT (@tableNameWithSchema, RESEED,0)