我有一个商店程序给我这个错误:
字符串或二进制数据将被截断。
我发现错误与我的商店程序的这一行有关:
SET @ID = @@Identity
@ID
的值是182452。
所以我在bigint
中使用了DECLARE
。但不确定为什么我仍然会收到此错误。
这是完整的部分:
DECLARE @ID bigint
INSERT INTO Email_Temp_Log ([_DateTimeInserted], [_DateTimeModified], [_Partitioner], [_IsActive], [inAppID], [inFromAddress], [inToAddress], [inTemplateID])
VALUES (getdate(), getdate(), 0, 1, @appID, @fromAddress, @toAddresses, @templateID)
SET @ID = @@Identity
当我注释掉
时SET @ID = @@Identity
工作正常。
答案 0 :(得分:0)
您误解了错误。错误来自insert语句。如果没有最终语句,您可能没有看到错误,因为错误是执行的最终语句。不确定为什么。
错误是因为您尝试插入的一个或多个字段大于数据库中相应的字段声明。
另外,不要再使用@@ identity(除非紧凑框架)使用scope_identity()或使用输出子句(sql2008 +)