有人可以帮助我通过这个,我得到了一个表5列(表:gl_acct_no),使用的SQL存储过程我想使用循环,使我的代码更短,这是我的代码:如何使用存储过程中的循环更新多列?
CREATE PROCEDURE [dbo].[sp_UpdateAccountNo]
(
@flag int
,@NEWAcctNo nAcct_num_10
,@OLDAcctNo nAcct_num_10
)
AS
IF EXISTS(SELECT glmt_udAcct_no_old FROM gl_master WHERE glmt_udAcct_no = @NEWAcctNo)
BEGIN
return(1)
END
ELSE
BEGIN
if @flag = 0
BEGIN
UPDATE gl_master
SET glmt_udAcct_no_old = @OLDAcctNo
WHERE glmt_udAcct_no = @OLDAcctNo
END
UPDATE gl_master
SET glmt_udAcct_no = @NEWAcctNo
WHERE glmt_udAcct_no_old = @OLDAcctNo
UPDATE gl_acct_no
SET gl_acno_01 = @NEWAcctNo
WHERE gl_acno_01 = @OLDAcctNo
UPDATE gl_acct_no
SET gl_acno_02 = @NEWAcctNo
WHERE gl_acno_02 = @OLDAcctNo
UPDATE gl_acct_no
SET gl_acno_03 = @NEWAcctNo
WHERE gl_acno_03 = @OLDAcctNo
UPDATE gl_acct_no
SET gl_acno_04 = @NEWAcctNo
WHERE gl_acno_04 = @OLDAcctNo
UPDATE gl_acct_no
SET gl_acno_05 = @NEWAcctNo
WHERE gl_acno_05 = @OLDAcctNo
END
我想更新gl_acct_no_01到05使用存储过程中的循环..请帮助感谢。
有什么不对您当前密码的长度?你真的需要选择退出动态SQL来替换5个更新语句吗?顺便说一句,结果代码的长度将接近你当前5次更新的长度。 – peterm
我只想要一个较短的代码,顺便说一句,谢谢..最近我已经得到了我的问题的答案.. :) –