-- ================================================
-- 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
利用存储过程动态创建表格
最新推荐文章于 2022-03-09 20:21:01 发布