Сценарии развертывания SQL Compare не включают все команды ALTER SCHEMA

У меня есть база данных, которую я пытаюсь очистить на SQL Server 2008 (не R2). В настоящее время все таблицы находятся в схеме dbo. Некоторые имена таблиц в единственном числе, другие во множественном числе.

Я создал новую схему, crm. Я переместил все таблицы из dbo в crm и переименовал имена таблиц в единственном числе, чтобы они соответствовали именам таблиц во множественном числе. Когда я выполняю сравнение SQL (версия 10.4.8.87) между моей базой данных разработки и производством, сценарий включает в себя следующее:

PRINT N'Creating schemata' 
GO 
CREATE SCHEMA [crm] 
AUTHORIZATION [dbo] 
GO 

... 

(removes foreign key constraints, notice it removes them from the plural tables in dbo schema) 

PRINT N'Dropping foreign keys from [dbo].[CustomersCommittees]' 
GO 
ALTER TABLE [dbo].[CustomersCommittees] DROP CONSTRAINT [FK_CustCom_ComID] 
ALTER TABLE [dbo].[CustomersCommittees] DROP CONSTRAINT [FK_CustCom_CustID] 
GO 

... 

EXEC sp_rename N'[dbo].[Customer]',N'Customers',N'OBJECT' 
ALTER SCHEMA [crm] TRANSFER [dbo].[Customers] 
EXEC sp_rename N'[dbo].[CustomerAddress]',N'Addresses',N'OBJECT' 
ALTER SCHEMA [crm] TRANSFER [dbo].[Addresses] 
EXEC sp_rename N'[dbo].[Committee]',N'Committees',N'OBJECT' 
ALTER SCHEMA [crm] TRANSFER [dbo].[Committees] 

... 

(adds foreign key contraints back, notice how it adds them to the plural tables in the new crm schema, but never included a statement to ALTER SCHEMA) 

PRINT N'Adding foreign keys to [crm].[CustomersCommittees]' 
GO 
ALTER TABLE [crm].[CustomersCommittees] ADD CONSTRAINT [FK_CustCom_ComID] FOREIGN KEY             ([CommitteeID]) REFERENCES [reference].[Committees] ([CommitteeID]) 
ALTER TABLE [crm].[CustomersCommittees] ADD CONSTRAINT [FK_CustCom_CustID] FOREIGN KEY ([CustomerID]) REFERENCES [crm].[Customers] ([CustomerID]) 
GO 

... 

Как упомянуто выше, он не включает ни одну из команд ALTER SCHEMA ... TRANSFER ... для таблиц, которые уже были множественными и не нуждаются в выполнении команды sp_rename.

Кто-нибудь еще видел это?

1 ответ

Возможно, я мог бы ответить более точно, если бы я знал, как SQL Compare обрабатывает эти другие таблицы... другими словами, нужно ли вносить дальнейшие изменения, нужно ли перестраивать таблицы или они вообще игнорируются?

Для таблиц, которые передаются так, как вам нравится, это потому, что вы использовали сопоставление схем, чтобы заставить SQL Compare сопоставлять dbo и crm?

Другие вопросы по тегам