1

VS 2010 でデータベース プロジェクトを操作するには、SSMS を使用してローカル プロジェクト データベースにスキーマの変更を直接加えます。チェックインの準備ができたら、ローカル データベースとプロジェクトのスキーマ比較を行い、変更を識別します。次に、変更を書き込むと、スキーマ オブジェクト スクリプトがデータベース プロジェクトに変更または作成されます。すべてが問題ないようであれば、これらの変更を TFS にチェックインできます。

外部キーとインデックスに関する私たちの標準は、それらを別々に保存することです。つまり、次のように言って新しいテーブルに列を定義したとしても、

CREATE TABLE Billing.EntryPointProduct
(
    EntryPointProductId INT IDENTITY(1,1) PRIMARY KEY,
    EntryPointId INT FOREIGN KEY REFERENCES Billing.EntryPoint(EntryPointId),
    ProductId INT FOREIGN KEY REFERENCES ProductCatalog.Product(ProductID)
)

最終的に本当に必要なのは、EntryPointProduct テーブルのファイルと各外部キー オブジェクトのファイルです。ただし、現在、スキーマ比較はすべてを 1 つのテーブル スクリプトで生成しています。以前にスキーマ比較でこれを行ったことがあることを誓いますが、これを行うように構成する方法が見つからないようです。誰でもアドバイスできますか?

4

1 に答える 1

0

DDL を次のように変更できますか。

CREATE TABLE Billing.EntryPointProduct
(
    EntryPointProductId INT IDENTITY(1,1),
    EntryPointId INT,
    ProductId INT,
CONSTRAINT [PK_EntryPointProduct] PRIMARY KEY CLUSTERED (EntryPointProductId)
)

ALTER TABLE Billing.EntryPointProduct
WITH CHECK ADD CONSTRAINT FK_EntryPointProduct_EntryPoint FOREIGN KEY(EntryPointId)  REFERENCES Billing.EntryPoint(EntryPointId)

ALTER TABLE Billing.EntryPointProduct
WITH CHECK ADD CONSTRAINT FK_EntryPointProduct_ProductCatalog FOREIGN KEY(ProductId)  REFERENCES ProductCatalog.Product(ProductID)

そうすれば、3 つの異なるファイルが作成され、FK には、作成されるたびにランダムに生成されるシステム生成の名前ではなく、実際の名前 (FK_*) が含まれるため、スキーマを比較しても一致しません。 2 つの別々にスクリプト化されたデータベース。(PKコードを変更したのと同じ理由)

于 2012-06-07T01:45:39.790 に答える