美文网首页
表不存在,调用存储过程创建表

表不存在,调用存储过程创建表

作者: 愤怒的阿昆达 | 来源:发表于2020-11-18 10:23 被阅读0次
ALTER PROCEDURE [dbo].[create_history_table]
 @TagID Integer
AS
BEGIN

exec('CREATE TABLE [his].[' + @TagID + '](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Time] [datetime] NOT NULL
 CONSTRAINT [PK_' + @TagID + '] PRIMARY KEY NONCLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
)')

RAISERROR('需要重新设置新表 his.%d的分区策略.',16,1, @TagID)

exec('CREATE NONCLUSTERED INDEX [IX_card_time] ON [his].[' + @TagID + '] 
(
    [Time] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
')

END

-- 描述存储过程create_history_table:

exec sp_helptext [create_history_table]

-- 判断表是否存在:

select count(*) from information_schema.TABLES
where 1 = 1 
and TABLE_CATALOG = '数据库名'
and TABLE_SCHEMA = '模式名'
and TABLE_NAME = '表名'

-- 不存在的话,调用存储过程create_history_table创建表:

-- 两端的花括号不要漏掉。
{ call [数据库名'].[模式名'].[create_history_table](21) }

相关文章

网友评论

      本文标题:表不存在,调用存储过程创建表

      本文链接:https://www.haomeiwen.com/subject/fhgqiktx.html