我正在使用 Select 将多个表加载到语句中。现在,我需要创建一个每天运行的作业。我的语法是这样的: drop table select * into from
所以它会做什么,它会每天删除表并再次创建它们。这有助于捕捉表格中的任何变化。它们是小桌子,因此无需很长时间即可删除并再次创建。有人告诉我我应该为此做一个存储过程,但我不知道存储过程。我正在为大约 50 个表执行 select into 语句。如何为所有这些表编写存储过程?我很困惑请帮忙!
我正在使用 Select 将多个表加载到语句中。现在,我需要创建一个每天运行的作业。我的语法是这样的: drop table select * into from
所以它会做什么,它会每天删除表并再次创建它们。这有助于捕捉表格中的任何变化。它们是小桌子,因此无需很长时间即可删除并再次创建。有人告诉我我应该为此做一个存储过程,但我不知道存储过程。我正在为大约 50 个表执行 select into 语句。如何为所有这些表编写存储过程?我很困惑请帮忙!
有不同的方法:
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')
我希望这有帮助