我有一个问题,一个变量没有被select语句设置。变量没有通过选择设置
select连接一个表变量@contracts(用于控制一个循环),然后加入到真正的合同和合同线表中。
我的选择是:
select top 1
@contract_id = c.contract_id
, @account = ch.account
, @service = cl.service
, @model = cl.model
, @serial = cl.serial
, @contract = ch.contract
from
@contracts c
inner join contractline cl on c.contract_id = cl.contract_id
inner join contractheader ch on cl.contract = ch.contract
where
cl.contract_id = @contract_id
但是当我做了选择@contract_id说,我得到一个NULL
回来,因为我做的所有变量。
我已经完成了一个简单的select * from @contracts c inner join contractline cl on c.contract_id = cl.contract_id inner join contractheader ch on cl.contract = ch.contract
,并且它在所有正确的位置返回完全1行的值,在选定值中没有空值。
我做错了什么?
您可以发布多一点的代码,例如你访问变量的地方。您是否确定在第二条SELECT语句中包含where子句时有一行? – Paddy 2010-07-28 08:31:55
'@ contract_id'是否具有初始值,因为您在where子句中使用它.. – 2010-07-28 08:32:59
就是这样,where子句不应该在那里。愚蠢的错误。 – themaninthesuitcase 2010-07-28 08:36:43