DBA.StackExchangeにこれを行ってもよいかどうかわかりませんが、私は、既存のバックエンドデータベーステーブルに既存の列I、J、およびKを持つ列を追加する必要があるソフトウェア開発者です)。これにより、私の新しいフロントエンドコードが機能するようになりました。テーブルには、他の関連するテーブルU、Vを参照する2つの既存の外部キーFK_T_UとFK_T_Vがあります。私は、3つの新しい真偽BITカラム(X、Y、Z)をテーブルに追加していますが、これをする。十分に簡単!私はSQL Server 2014を使用しています。ソース・リポジトリには既にCREATE TABLEスクリプトがあります。IF EXISTSとELSE文で囲み、ALTER TABLEシーケンスを真中に挿入します。このように、将来の再デプロイメントは単に既存のテーブルを変更することも、実際には存在しない場合は作成することもできます。良いアイデア?私はそこに行くのが少し難しいので、私はStackOverflowの助けを求めることによってこの努力をスピードアップすると思った。あなたの援助は非常に高く評価されます!ここでは、既存のスクリプトを作成し、[作業]です:テーブルが存在しない場合はテーブルを作成するスクリプトの正しいSQL Server構文は何ですか?それ以外の場合は、新しい列を追加するには変更しますか?
BEGIN TRANSACTION
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[T]
CREATE TABLE [dbo].[T] (
[I] [int] IDENTITY (1, 1) NOT NULL ,
[CourseK] [int] NULL ,
[I] [int] NOT NULL ,
[K] [int] NULL ,
CONSTRAINT [PK_T] PRIMARY KEY CLUSTERED
(
[I]
) ON [PRIMARY]
) ON [PRIMARY]
GRANT SELECT ON [dbo].[T] TO [OtherApplication]
GRANT SELECT , INSERT ON [dbo].[T] TO [AnotherApplication]
ALTER TABLE [dbo].[T] WITH NOCHECK ADD CONSTRAINT [FK_T_U] FOREIGN KEY
(
[K]
) REFERENCES [U] (
[K]
)
ALTER TABLE [dbo].[T] WITH NOCHECK ADD CONSTRAINT [FK_T_V] FOREIGN KEY
(
[I]
) REFERENCES [V] (
[I]
)
COMMIT TRANSACTION
あなたは将来的にはDACPACを使用して検討する必要があります、このインクリメンタルな展開を容易にするためのものです.. https://www.red-gate.com/simple-talk/sql/database-delivery/microsoft-and-database-lifecycle-management-dlm-the-dacpac/ –