sql:子查询返回的值不止一个。

     在项目中写了两个表的触发器分别是cd表。
   触发本触发器的条件是:插入的语句的projectid(企业编号)>0而且cdxm(长贷项目)=‘借款金额’时,同时在本表中插入一条projectid和marketid、cdje(长贷金额)相同,marketyear=插入的marketyear(发生年份)+插入的zq(帐期),长贷项目为‘应还金额’的数据记录。
写法以下:修改本错误主要看cd表。
if ( select projectid from inserted )>0
begin
if( select cdxm from inserted)= '借款金额'
begin
insert into cd    
select projectid,marketid, convert( int,marketyear)+ convert( int,zq),
'应还金额',cdje,0 from inserted    
end

end
      根据sql跟踪,错误提示为第一行和第三行,应修改成:
Code
if exists( select projectid from inserted     where projectid>0)
begin
insert into cd    
select projectid,marketid, convert( int,marketyear)+ convert( int,zq),
'应还金额',cdje,0 from inserted where    cdxm= '借款金额' and projectid>0
end
使用exists关键字,判断是否包含结果集,这样就防止了第一行返回多条记录,同时将cdxm放入到内部限制,而不是用if,返回多结果集了。
问题是解决了,令我奇怪的是,我还有一个表,写法如一个段代码,内容基本类型,就不报错,很奇怪呀!sql也有表里不一的状况呀!
相关文章
相关标签/搜索