问个菜鸟问题
在数据库A的存储过程中用exec或sp_executesql动态执行存储过程创建的sql代码,但是要求创建的是数据库B的存储过程,用create proc B..procname不行,use B go也不行,请问用什么方法可以实现?
如果实在不行只能导成txt或者sql文件再用xp_cmdshell调用isqlw运行了……
------解决方案--------------------
declare @s varchar(8000)
set @s= '
create procedure protestb
as
select * from test.dbo.databletest '
use ReportServer
exec(@s)
------解决方案--------------------
use master
go
create procedure sp_test
as
begin
exec( 'use test
exec( ' 'create procedure sp_test1
as
select * from sysobjects ' ')
')
end
go
exec sp_test
go
drop procedure sp_test
go
use test
go
exec sp_test1
go
drop procedure sp_test1
go