Sql Server 2005 および 2008 の場合、特定のテーブルに列が既に存在するかどうかを確認し、存在しない場合は作成します。この新しい列には、ExistingColumn の既定値が必要です。現在、SQLサーバーが構文エラーを訴えるため、動的SQLを使用して新しい列を埋める必要があります。
現在のSQLサーバーコードは次のとおりです。
IF NOT EXISTS (SELECT TOP 1 1 FROM sys.columns WHERE [name] = N'NewColumn' AND OBJECT_ID = OBJECT_ID(N'ExistingTable'))
BEGIN
ALTER TABLE [dbo].[ExistingTable] ADD [NewColumn] VARCHAR(50) NULL;
exec sp_executesql N'UPDATE [dbo].[ExistingTable] SET NewColumn = ExistingColumn'
ALTER TABLE [dbo].[ExistingTable] ALTER COLUMN [NewColumn] VARCHAR(50) NOT NULL
END
GO
動的 SQL に頼らずにこの問題を解決する方法はありますか?