日期:2014-05-18  浏览次数:20371 次

如何在数据库A的存储过程中动态为数据库B建立存储过程?
问个菜鸟问题
在数据库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