利用存储过程动态创建表格

-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
USE [CTP]
GO
/****** Object:  StoredProcedure [dbo].[DeleteNews]    Script Date: 08/11/2015 21:05:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DeleteNews]     
as 
    DECLARE @PointerPrev int 
    DECLARE @PointerCurr int 
    DECLARE @TId nvarchar(30)
    DECLARE @TIdd nvarchar(30)
    DECLARE @MarId nvarchar(11)
    DECLARE @HIS nvarchar(4)
    DECLARE @ID nvarchar(500)
    Set @PointerPrev=1 
    set  @ID='y,k'
     set  @MarId='MarketData'
     set @HIS='His'
   while (@PointerPrev < LEN(@ID)) 
    Begin 
        Set @PointerCurr=CharIndex(',',@ID,@PointerPrev) 
        if(@PointerCurr>0) 
        Begin 
            set @TId=cast(SUBSTRING(@ID,@PointerPrev,@PointerCurr-@PointerPrev) as varCHAR)+@MarId+@HIS
            if exists (select * from sysobjects where id = object_id(N'[dbo].['+@TId+']') and OBJECTPROPERTY(id, N'IsUserTable') = 0) 
            Begin 
            exec('select * into '+@TId+' from MarketData')
            exec('alter Table  '+@TId+' add constraint '+@PointerPrev+' primary key(TradingDay,InstrumentID,UpdateTime,UpdateMillisec)')  
            End 
        End 
            SET @PointerPrev = @PointerCurr+1 
    End 
    --删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除 
    
      set @TId=cast(SUBSTRING(@ID,@PointerPrev,LEN(@ID)-@PointerPrev+1) as varCHAR)+@MarId+@HIS  
      if exists (select * from sysobjects where id = object_id(N'[dbo].['+@TId+']') and OBJECTPROPERTY(id, N'IsUserTable') = 0) 
      begin
      exec('select * into '+@TId+' from MarketData');
      exec('alter Table  '+@TID+' add constraint '+@PointerPrev+' primary key(TradingDay,InstrumentID,UpdateTime,UpdateMillisec)')
      end
GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值