我已将数据库从备份恢复到新服务器,但无法从数据库中删除旧模式。我为此数据库创建了一个新用户。新用户的名称不同(为了让其他开发人员更清楚),所以我对这个模式没有用处。我最终设法删除了 USER,但架构不会消失。
我收到的错误是“无法删除架构”,因为它被对象“引用”
运行此脚本:
select * from sys.objects where schema_id = 5
...显示此架构“拥有”的所有对象。
我的问题是我找不到改变这些对象所有权的方法。一定有办法吗?谢谢大家
我已将数据库从备份恢复到新服务器,但无法从数据库中删除旧模式。我为此数据库创建了一个新用户。新用户的名称不同(为了让其他开发人员更清楚),所以我对这个模式没有用处。我最终设法删除了 USER,但架构不会消失。
我收到的错误是“无法删除架构”,因为它被对象“引用”
运行此脚本:
select * from sys.objects where schema_id = 5
...显示此架构“拥有”的所有对象。
我的问题是我找不到改变这些对象所有权的方法。一定有办法吗?谢谢大家
将对象事物从模式源移动到模式目标的语法是:
ALTER SCHEMA Destination TRANSFER Source.Thing
这是生成脚本以将所有对象传输到 dbo 模式的 SQL:
SELECT 'ALTER SCHEMA dbo TRANSFER ' + SCHEMA_NAME(schema_id) + '.' + name
FROM sys.tables
WHERE schema_id != SCHEMA_ID('dbo');
只传输一个特定的模式:
SELECT 'ALTER SCHEMA NewSchema TRANSFER ' + SCHEMA_NAME(schema_id) + '.' + name
FROM sys.tables
WHERE schema_name(schema_id) = 'OldSchema'