日期:2014-05-18  浏览次数:20347 次

解决一个事务的问题,能把这2句sql合并成一句吗?
SELECT   Right(Replicate(N '0 ',10)+Cast(StartValue   AS   nvarchar),10)   as   StartValue     FROM   CommonStart   WHERE   Upper(TableName)=Upper( 'CorpDept_Prodh ')   AND   Upper(IsNull(ColName,   ' ' ' '))     =   Upper(IsNull( '2 ',   ' ' ' '))   AND   Upper(OtherKey)   =   Upper( ' ')   and   startdate   = '2007-03-06 '      

  UPDATE   CommonStart   SET   StartValue   =   StartValue   +   1       WHERE   Upper(TableName)   =   Upper( 'CorpDept_Prodh ')   AND   Upper(IsNull(ColName,   ' ' ' '))   =   Upper(IsNull( '2 ',   ' ' ' '))     AND   Upper(OtherKey)   =   Upper( ' ')         and   startdate   =   '2007-03-06 '


------解决方案--------------------
第一条语句用来显示信息;第二条更新列值
不能放在一条语句中来做

如果只是想看到StartValue+1后的效果,而不需要更新的话,可以实现
------解决方案--------------------
两个SQL所实现的功能无法合并。
------解决方案--------------------
不能一次完成
------解决方案--------------------
select跟update怎么能放在一起?
------解决方案--------------------
一般Select查询只可以同时对变量进行赋值。不能Select和Update同时进行。
------解决方案--------------------
放在begin ...end中可以,只是更新结果要再查询一次才能显示.