mssql存储过程-动态更新update

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sir_jun/article/details/51985376
 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

猜你喜欢

转载自blog.csdn.net/sir_jun/article/details/51985376