【发布时间】:2013-06-24 11:51:12
【问题描述】:
有人可以帮我解决这个问题吗,我在一张表上有 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
我想在存储过程中使用循环将 UPDATE gl_acct_no_01 更新为 05。请帮助谢谢。
【问题讨论】:
-
您当前代码的长度有什么问题?你真的需要选择退出动态 SQL 来替换 5 个更新语句吗?顺便说一句,结果代码的长度将接近您当前 5 次更新的长度。
-
我只是想要一个更短的代码,顺便说一句谢谢.. 最近我的问题得到了答案.. :)
标签: sql stored-procedures while-loop