Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows服务中接收到与预期不同的SqlException_C#_Sql Server_Windows Services_Sqlexception - Fatal编程技术网

C# 在Windows服务中接收到与预期不同的SqlException

C# 在Windows服务中接收到与预期不同的SqlException,c#,sql-server,windows-services,sqlexception,C#,Sql Server,Windows Services,Sqlexception,我有一个很奇怪的问题。我的windows服务由于SqlException而失败:“字符串或二进制数据将被截断。”对于INSERT语句 这是一个需要解决的基本错误,但不是真正的错误。如果我进行跟踪并直接在数据库上运行查询,则不会出现错误。所有数据在方式上都比数据库上的限制短 我最终从查询中取出了一些必需的列,希望生成一个不同的错误:“无法将值NULL插入列'Type'” 然而,我没有得到这个错误!我仍然得到“字符串或二进制数据将被截断。” 如果直接在数据库上从跟踪运行查询,则会出现此错误 有人知道

我有一个很奇怪的问题。我的windows服务由于SqlException而失败:“字符串或二进制数据将被截断。”对于INSERT语句

这是一个需要解决的基本错误,但不是真正的错误。如果我进行跟踪并直接在数据库上运行查询,则不会出现错误。所有数据在方式上都比数据库上的限制短

我最终从查询中取出了一些必需的列,希望生成一个不同的错误:“无法将值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

已找到此错误的原因。这根本不在上面发布的查询中。表上有一个触发器,用于设置LastUpdatedBy列

大多数用户都有4个字符的用户名,但运行服务的用户没有。柱极限为4

避免此问题:

  • 触发器可能有问题。它们不会立即可见-sp_帮助“表”甚至不会返回它们。如果出现错误,您甚至无法跟踪查询
我应该早些尝试的内容:

  • 以用户身份运行查询。(我想这么做,但它是一个管理员用户,当时有人在使用它。)
  • 检查所有列信息与它们中的内容以及查询中的内容。然后检查信息是如何到达那里的。在这种情况下,默认约束可能会导致相同的问题

您可以输入您尝试的查询吗?我可以,这是一个非常基本的insert语句,它是在一个execute sql语句中完成的,虽然它可能有一些内容??ID是主键吗?自动递增还是什么?主键,从另一个保存值的表生成(原因)。但是有很多列不能为NULL。SP正在中断还是insert语句在外部?你试过调试吗?