如何在存儲過程中為另一個數據庫創建一個存儲過程?

在 DB1 中建立了一個存儲過程P_1 , 目的是
1.新建一個數據庫DB2 ,
2.把DB1中的表和和資料導入DB2
3.為DB2建立一個存儲過程P_2

create proc p_1
@DB nvarchar(20)
as
exec ( 'create database ' + @DB )

exec ('select * into ' + @DB + '.dbo.SYS_Slip from dbo.SYS_Slip ' ) -- 以表SYS_Slip為例

--以下語句如何寫?
exec ('Create Proc ' + @DB + '.dbo.P_2
as
select * from SYS_Slip '
)

Create Proc 前不允许有语句,而且use只在exec内部起作用不会带到外部的
多套一层exec就可以了:
create proc p_1
@DB nvarchar(20)
as
exec ( 'create database ' + @DB )
exec ('select * into ' + @DB + '.dbo.SYS_Slip from dbo.SYS_Slip ' ) -- 以表SYS_Slip為例
exec ('use '+@DB+' exec(''Create Proc P_2
as
select * from SYS_Slip '')'
)

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus