如何使用一个db存储过程动态更改db名称到另一个db存储过程?

时间:2011-12-15 11:23:19

标签: database sql-server-2008 c#-4.0 stored-procedures asp.net-4.0

我在这个数据库中使用了一个像测试(数据库名称)的数据库我添加了10个表和5个存储过程,现在我可以在另一个数据库中调用该程序测试2(数据库名称), 我是这样写的

Test database stored procedure is 

Create proc GetDetails()
As
select * from Emp;

之后,在另一个数据库(如

)中使用了storedprocedure
    Test2  database stored procedure is 

    Create proc GetDetails()
    As
Begin
    Exec Test..GetDetails()
End

现在客户端导入数据库更改名称为客户端希望现在所有存储过程都不能正常工作如何解决问题请给我任何建议,我可以动态更改数据库名称所有存储过程。

感谢你 Hemanth

1 个答案:

答案 0 :(得分:0)

假设您可以将目标数据库名称传递给Test2 sproc(或从配置表或其他内容中读取),那么您可以像这样使用它:

-- assume @dbname has the name of the database where getdetails was created
declare @sql nvarchar(4000), @params nvarchar(4000), @dbname sysname
set @dbname = 'test'
set @sql = @dbname + '..getdetails'
set @params = ''
exec sp_executesql @sql, @params