【问题标题】:How to change schema name of a table in all stored procedures如何在所有存储过程中更改表的模式名称
【发布时间】:2008-09-19 12:34:05
【问题描述】:

我知道如何在 SQL Server 2005 中更改表的架构:

ALTER SCHEMA NewSchama TRANSFER dbo.Table1

但是如何检查和/或更改使用旧模式名称的存储过程?

对不起:我的意思是: 在存储过程的 sql 中存在具有表的旧模式名称的存储过程...如何编辑在过程主体中具有 dbo.Table1 的所有存储过程...

【问题讨论】:

  • 这是 SSDT 中可用的重构,尽管它仍需要检查/测试,因为它可能会丢失动态 SQL 中的引用。

标签: sql-server stored-procedures


【解决方案1】:
  • 使用任务>在 SSMS 中生成脚本以提供一系列 Create Proc 脚本。
  • 使用查找和替换 (Alt - H) 将“创建”更改为“更改”
  • 使用 F & R 将 'dbo.Table1' 更改为 'dbo.Table2'
  • 然后执行 (F5) 修改所有受影响的 SP。

简单但有效。

【讨论】:

  • 那是更改表名,问题是如何更改表的模式名称....
【解决方案2】:

通过在更改架构之前右键单击表来获取依赖对象的列表,然后查看依赖于表的内容,创建一个列表,然后更改它们。但是,您总是有可能会遗漏一些东西,因为它可能会破坏 SQL 服务器跟踪的依赖关系。

但最好的方法是将数据库编写成一个文件,然后搜索表名,列出所有需要更改的存储过程,然后将它们添加到脚本中进行更改表的架构。

【讨论】:

    【解决方案3】:

    声明@SearchObject VARCHAR(100)

    SET @SearchObject = 'searchable_table_name' -- 将'searchable_table_name' 改成你要搜索的表名

    SELECT sc.name [搜索对象],so.name [容器对象],
    案例so.xtype 当'U'然后'表' 当'P'然后'存储过程' WHEN 'F' THEN '用户定义函数' ELSE“其他” 结尾 作为[容器对象类型]

    FROM sysobjects 所以

    INNER JOIN syscolumns sc ON so.id = sc.id

    WHERE sc.name LIKE '%' + @SearchObject + '%' AND so.xtype IN ('U','P','F') -- U:表,P:存储过程,F:用户定义函数(udf)

    ORDER BY [容器对象] ASC

    -- 显示包含请求的表名的存储过程。

    Select text From syscmets where text like '%from' + @SearchObject + '%'

    (Select id From sysobjects where type='P' and name = '')

    -- 显示特定存储过程的内容(从上面找到)

    --Exec sp_helptext 'DeleteAssetByID'

    【讨论】:

      【解决方案4】:

      例如,我创建了一个表 Reports,默认情况下会为其分配 dbo 架构,现在如果我想更改 Reports 表的架构,首先,我将创建一个名为 Reporting 的新架构:

      CREATE SCHEMA Reporting
      

      然后我将执行以下脚本,将 Reports 表的架构从 dbo 更改为 Reporting:

      ALTER SCHEMA Reporting TRANSFER dbo.Reports 
      

      或者为了更好地理解:

      ALTER SCHEMA 'newSchema' TRANSFER 'oldSchema'.'table'
      

      【讨论】:

        猜你喜欢
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-12
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        相关资源
        最近更新 更多