且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在存储过程中删除和创建表?

更新时间:2023-02-07 11:33:29

让我难住了...在这种情况下,似乎如果存在"与 exec 不能很好地协同工作.更新脚本如下:

Had me stumped... Seems the "If Exists" does not work well together with exec in this case. Updated script below:

DECLARE @yyyymm char(6)
SET @yyyymm=CONVERT(nvarchar(6), GETDATE(), 112)

DECLARE @tableName varchar(50)
SET @tableName='table1A_' + @yyyymm 

DECLARE @SQL varchar(max)
SET @SQL = 'DROP TABLE ' + @tableName

EXEC('IF EXISTS(SELECT * FROM sys.tables WHERE type=''u'' and name = N''' + @tablename + ''') DROP TABLE table1A_201404')

SET @SQL= 'SELECT TOP 0 * 
INTO ' + @tableName + ' FROM sysobjects with (nolock)'
EXEC(@SQL) print @SQL