mssql存储过程--动态拼装create

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sir_jun/article/details/51985363
create table test_llj_1 ( a  varchar(max) );






SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
if object_id('test_llj2') is not null
drop proc test_llj2
go
if object_id('V_RECEIVE_MESSAGE') is not null
drop view V_RECEIVE_MESSAGE
go
CREATE PROCEDURE test_llj2
AS
BEGIN
 DECLARE @str VARCHAR(max);
declare @tbnms varchar(max) ;
declare @tbnm  varchar(max) ;
 declare @vcreate varchar(max);
 declare @sqlu varchar(max);
 declare @sqls varchar(max) ;
  declare @sqlc varchar(max) ;
  set @sqlu= ' union all ' ;
 set @sqls= ' select * from  ';
  set @vcreate = 'create view V_RECEIVE_MESSAGE as ';
 set @sqlc =' select * from  ';
 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 @sqlc=@sqlc+@tbnm  +@sqlu +@sqls +' ';
if @@fetch_status != 0 
BREAK;
end;
set @vcreate= @vcreate + substring (@sqlc , 0, LEN(@sqlc)-23)  ;
insert into dbo.test_llj_1 (a) values(@vcreate); 
exec ( @vcreate );
CLOSE c_test_main;
-- 释放游标.
DEALLOCATE c_test_main;  
end
;

猜你喜欢

转载自blog.csdn.net/sir_jun/article/details/51985363
今日推荐