如何使用SELECT INTO动态设置表名?

时间:2013-05-10 09:13:15

标签: sql-server-2008

DROP TABLE Backup_LOAD_EMPLOYEE
SELECT * INTO dbo.Backup_LOAD_Employee FROM LOAD_Employee WHERE 1=1
TRUNCATE TABLE LOAD_Employee

我从外部源批量插入员工数据。在我的sp每次导入后,我将截断load_employee表。在截断之前我想进行表备份,前一天的数据应该截断。

如何给出自动增量表名称(在SP中)?

1 个答案:

答案 0 :(得分:1)

这不直接回答您的问题(但您可以使用动态SQL),但更好的解决方案可能是将备份日期放入列中,而不是每天创建一个表。然后,您可以更轻松地查询存档数据多天,因为它们都在一个表中。像这样:

create table dbo.Backup_LOAD_Employee (
    BackupDate date,
    --- other columns
    )
go

insert into dbo.Backup_LOAD_Employee (BackupDate, ...)
select cast(getdate() as date), ... -- other columns
from dbo.LOAD_Employee

truncate table dbo.LOAD_Employee