我有一个非常奇怪的问题。我有Windows服务,由于SqlException失败:“字符串或二进制数据将被截断。”对于INSERT语句。
现在这是一个相当基本的错误要解决,但这不是真正的错误。如果我执行跟踪并直接在数据库上运行查询 - 没有错误。 WAY中的所有数据都短于数据库的限制。
我最终从查询中取出了一些必需的列,希望生成一个不同的错误:“无法将值NULL插入列'Type'”
但是我没有收到此错误!我仍然得到“字符串或二进制数据将被截断。”
如果我在数据库上直接运行查询,我会收到此错误。
有没有人对这里可能发生的事情有任何想法?谢谢!
修改以添加 这是应该给我无法插入值错误的查询。另一个查询是相同的但有更多参数:
declare @p4 int
set @p4=60029550
exec sp_executesql N'EXECUTE ssl_GetTTDVersionCallSeq 1, @TTDVersionIDVal OUTPUT
INSERT INTO TTDVersion(Task,ID) VALUES (@P0,@TTDVersionIDVal)',N'@P0 int,@TTDVersionIDVal int output',@P0=200003762,@TTDVersionIDVal=@p4 output
select @p4
答案 0 :(得分:0)
找到此错误的原因。在上面发布的查询中根本没有。表上有一个触发器,用于设置LastUpdatedBy列。
大多数用户都有一个4字符的用户名,但该服务正在运行的用户没有。列限制为4。
避免此问题:
我之前应该尝试的内容: