我在这个数据库中使用了一个像测试(数据库名称)的数据库我添加了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
答案 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