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

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
;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值