【问题标题】:How can I change tables referent to another database?如何更改引用另一个数据库的表?
【发布时间】:2015-04-03 04:27:11
【问题描述】:

我正在使用 SQL Server 2008,我有 2 个数据库,分别是 DB01DB02。 我将表 [MY_TABLE]DB01 移动到 DB02 并从 DB01 中删除每个表强>。 但是在 DB01 中,我有 150 个存储过程、50 个函数和 50 个使用这些表的视图。

如果我将 [DB01].[dbo].[ME_TABLE] 改为 [DB02].[dbo].[ME_TABLE]一一。

我怎样才能通过其他方法实现这一点?

【问题讨论】:

    标签: database sql-server-2008 stored-procedures stored-functions


    【解决方案1】:

    您可以从 DB001 编写这些存储过程的脚本,并在您想要使用它们的 DB002 上执行它们。如果您愿意,您可以稍后从 DB001 中删除它们,这样可以节省您的时间。

    【讨论】:

    • 但是在那些存储过程中有它自己的表。
    • 只有一张桌子。
    • 您想在 DB002 中使用来自 DB001 的过程。或者你到底想达到什么目标?
    • 比如我的存储过程有[DB01].[db0].[MY_TABLE]和[DB01].[db0].[MY_TABLE02]。然后我将 [MY_TABLE] 移动到 DB02,我必须将 [DB01].[db0].[MY_TABLE] 编辑到 [DB02].[db0].[MY_TABLE] 但这需要很多时间。
    • 是的,这正是我的观点。您可以按照建议将它们编写到新数据库中。您不必继续重命名所有内容。
    【解决方案2】:

    将查询粘贴到新数据库中。问题已解决!

    【讨论】:

    • 我的问题不是如何移动桌子。但这是在存储过程、函数和视图中更改表引用的最佳解决方案。
    • 您可能需要从查询窗口更改和替换表名
    • 是的,我想在查询窗口中做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2012-10-16
    • 2021-01-13
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多