将最后一条语句更改为:EXEC('SELECT * FROM ' + @tablename)
这就是我在存储过程中所做的工作。第一个块将声明变量,并根据当前年份和月份名称设置表名,在本例中是test_2012OCTOBER。然后,我检查它是否已经存在于DB中,如果已经存在,则删除它。然后,下一个块将使用SELECT INTO语句来创建该表,并使用来自另一个表的带有参数的记录填充它。--DECLARE TABLE NAME VARIABLE DYNAMICALLYDECLARE @table_name varchar(max)SET @table_name =
(SELECT 'TEST_'
+ DATENAME(YEAR,GETDATE())
+ UPPER(DATENAME(MONTH,GETDATE())) )--DROP THE TABLE IF IT ALREADY EXISTSIF EXISTS(SELECT name
FROM sysobjects
WHERE name = @table_name AND xtype = 'U')BEGIN
EXEC('drop table ' + @table_name)END--CREATES TABLE FROM DYNAMIC VARIABLE AND INSERTS ROWS FROM ANOTHER TABLEEXEC('SELECT * INTO '
+ @table_name + ' FROM dbo.MASTER WHERE STATUS_CD = ''A''')