您的位置:首页 > 数据库

mssql存储过程-动态更新update

2016-07-21 18:09 381 查看
 execute  T_llj3   @pkmsg='abc';

select * from test_llj_1;  

delete from test_llj_1; 

 drop proc T_llj3;

 create proc T_llj3

@pkmsg char(12)  

as

DECLARE @sqlu varchar(200) ;

DECLARE @sqls varchar(200) ;

DECLARE @sqlup varchar(200) ;

declare @tbnm varchar(200);

  SET @sqlu= ' update   '

  SET @sqls= ' set STATUS=3 where  MESSAGE_ID='

  SET @sqlup = ''

select * from RECEIVE_MESSAGE where MESSAGE_ID=@pkmsg 

begin

 DECLARE

                                    c_test_main

                                    CURSOR FAST_FORWARD FOR

                                        SELECT

                                            tbs.TABLE_NAME

                                        FROM

                                            INFORMATION_SCHEMA.tables tbs

                                        WHERE

                                            tbs.TABLE_NAME LIKE 'RECEIVE_%' 

                                            OPEN c_test_main WHILE 1=1 

                                            BEGIN

                                        FETCH NEXT

                                        FROM

                                            c_test_main

                                        INTO

                                            @tbnm

                                             SET @sqlup=@sqlu+@tbnm +@sqls +@pkmsg 

                                           insert into test_llj_1 values(@sqlup);

                                    IF        @@fetch_status != 0 BREAK

                                    END  

                            

                                    --EXEC(@sqlu)

                                    CLOSE c_test_main 

-- 释放游标.

DEALLOCATE c_test_main

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: