-1

我正在使用 Select 将多个表加载到语句中。现在,我需要创建一个每天运行的作业。我的语法是这样的: drop table select * into from

所以它会做什么,它会每天删除表并再次创建它们。这有助于捕捉表格中的任何变化。它们是小桌子,因此无需很长时间即可删除并再次创建。有人告诉我我应该为此做一个存储过程,但我不知道存储过程。我正在为大约 50 个表执行 select into 语句。如何为所有这些表编写存储过程?我很困惑请帮忙!

4

1 回答 1

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')

我希望这有帮助

于 2014-04-10T15:50:46.460 回答