好的,当我尝试执行这个过程时,我得到了这个错误。问题是,我不会在任何时候尝试转换为bit。至少不是故意的。我现在有点迷惑了。
Declare @AValue varchar(max)
set @AValue = (SELECT Value
FROM dbo.Tbl
WHERE Name=@FILE
AND Value LIKE (CAST(@MODID as varchar(15))+'|%'))
set @AValue = PARSENAME(REPLACE(@AValue, '|', '.'), 1) -- Hack way to parse.
INSERT INTO dbo.Tbl
(
Name,
Value,
Type,
CDT,
UDT,
Active,
User
)
VALUES
(
'Agreement',
(CAST(@MODID AS varchar(15)) + '|' + @AValue),
'Download',
GETDATE(),
GETDATE(),
1,
@USER
)发布于 2012-04-09 20:35:01
抱歉,找到答案了。今天我回来了,我得到的错误与我第一次问这个问题时完全不同。对不起,我忘了写那个错误。
问题是我的WHERE子句从数据库获得多个返回,因为我已经测试了很多,所以有重复的行。
发布于 2012-04-07 04:51:39
检查表上的触发器,特别是insert。很多时候,无法解释的错误可能会潜伏在那里。
发布于 2012-04-07 05:23:53
发布错误、CREATE PROCEDURE语句,以及-最重要的-对失败的过程的调用。另外,您使用的是什么版本的SQL Server?
最有可能的情况是,存储的proc有一个BIT类型的参数,而您正在使用'F‘、'-1’之类的值或其他无法转换为BIT的字符串调用该过程。
https://stackoverflow.com/questions/10048991
复制相似问题