CREATE PROCEDURE dbo.aip_createhistbl
(
@strTblSuffix nvarchar(120),
@intTblLimit int = 100,
@intMsgSev int = 0 OUTPUT,
@strTblName nvarchar(128) = 'ai_his_' OUTPUT
)
AS
SET NOCOUNT ON
DECLARE @strCmd nvarchar(2000)DECLARE @strSuffix nvarchar(120)
DECLARE @strTbl nvarchar(128)
IF (@strTblSuffix = '')
OR (@strTblSuffix IS NULL)
BEGIN
SET @intMsgSev = 3
RETURN (0)
END
SET @strTbl = 'ai_his_' + @strTblSuffix
IF (NOT EXISTS (select * from dbo.sysobjects where id = object_id(@strTbl) and OBJECTPROPERTY(id, N'IsUserTable') = 1))
BEGIN
IF ((SELECT COUNT(*) FROM sysobjects WHERE name LIKE 'ai_his_%') > @intTblLimit - 1) RETURN (3)
SET @strCmd = ''
SET @strCmd = @strCmd + CHAR(10) + 'CREATE TABLE ' + @strTbl
SET @strCmd = @strCmd + CHAR(10) + '( hisdate datetime NOT NULL,'
SET @strCmd = @strCmd + CHAR(10) + ' QcTotal int NOT NULL'
SET @strCmd = @strCmd + CHAR(10) + 'CONSTRAINT ' + @strTbl + '_PK'
SET @strCmd = @strCmd + CHAR(10) + 'PRIMARY KEY (hisdate))'
SET @strCmd = @strCmd + CHAR(10) + ' ON [PRIMARY]'
SET @strCmd = @strCmd + CHAR(10) + 'CREATE INDEX ' + @strTbl + '_AK1'
SET @strCmd = @strCmd + CHAR(10) + ' ON ' + @strTbl + '(hisdate)'
SET @strCmd = @strCmd + CHAR(10) + ' ON [PRIMARY]'
EXEC (@strCmd)
IF @@ERROR = 0 RETURN (2)
ELSE RETURN (0)
END
RETURN (1)
GO
GRANT EXECUTE ON [dbo].[aip_createhistbl] TO [aiadmin]
GO