【问题标题】:How to change the db name dynamically using one db storedprocedures to another db storedprocedures?如何使用一个数据库存储过程将数据库名称动态更改为另一个数据库存储过程?
【发布时间】:2011-12-15 11:23:18
【问题描述】:

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

Test database stored procedure is 

Create proc GetDetails()
As
select * from Emp;

之后在另一个数据库中使用存储过程,如

    Test2  database stored procedure is 

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

现在客户端导入数据库根据客户的意愿更改名称现在所有存储过程在这种情况下都不起作用如何解决问题请给我任何建议,我可以动态更改数据库名称所有存储过程。

谢谢你 赫曼斯

【问题讨论】:

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


    【解决方案1】:

    假设您可以将目标数据库名称传递给 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      相关资源
      最近更新 更多