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

存储过程问题,先查询后更新
CREATE PROCEDURE dbo.batch_courier
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
/* SET NOCOUNT ON */
declare @r nvarchar(500)
SELECT @r=courier FROM stock_A WHERE (doc_no = 'S1644') and stock_no=N'O1887' and courier is null

if @r
begin
UPDATE stock_A SET TRACKING_date = GETDATE(),tracking=N'dds' where (doc_no = 'S1644') and stock_no=N'O1887'
else
UPDATE stock_A SET TRACKING_date = GETDATE(),tracking=tracking+N'ddswwww' where (doc_no = 'S1644') and stock_no=N'O1887'
end
RETURN
C#如果先查询数据库有没有这个字段,然后再更新,会打开关闭数据库二次,现在想在存储中中解决这个问题,哪位高人指点一下。谢谢

------解决方案--------------------
你可以把一个connection赋给两个不同的Command,或者把一个Command.Text两次赋值后执行两次,不一定要用存储过程,