为select into语句创建存储过程

时间:2014-04-10 15:32:31

标签: sql stored-procedures select-into

我使用Select into statments加载多个表。现在,我需要创建一个每天运行的工作。我的语法是这样的: 放表 选择 * 成 来自

所以它将做什么,它将每天丢弃表并再次创建它们。这有助于阻止表格中的任何变化。它们是小桌子,所以它不需要很长时间才能丢弃并再次创建。 有人告诉我,我应该为此做一个存储过程,但我不知道存储过程。我正在为select语句做大约50个表。如何为所有这些表编写存储过程?我很困惑请帮忙!

1 个答案:

答案 0 :(得分:0)

有不同的方法:

1.在存储过程中封装作业脚本:在这种方法中,您将创建一个存储过程并将所有插入放入其中的脚本中并在您的作业中运行此过程,如下所示

create procedure spCopyMyTables 
as
drop table t1
select * into t1 from Table1
...
drop table t50
select * into t50 from Table50

2.创建drop和select into的过程,在这种方法中,你编写一个像这样的存储过程

Create Procedure spMakeCopyOfTable(@tableName varchar(100),@tempTableName varchar(100)) 
as
   declare @sql nvarchar(max)
   set @sql = 'if object_id('''+@tempTableName+''') is not null Drop table '+@tempTableName
   exec sp_executesql @sql
   set @sql = 'select * into'+tempTableName+' from '+@tableName
   exec sp_executesql @sql

然后在您的工作中将此程序称为Exec spMakeCopyOfTable('Customers','CopyOFCustomers')

你也可以像这样结合这两种方法

create procedure spCopyMyTables 
as
Exec spMakeCopyOfTable('Table1','t1')
Exec spMakeCopyOfTable('Table2','t2')
...
Exec spMakeCopyOfTable('Table50','t50')

我希望这会有所帮助