2012-02-07 15 views
1

データベースからテーブルCREATEをスクリプトしようとすると、1つのCREATE TABLE内のすべての列がスクリプト化されるとは限りません。列の中には、ALTER TABLEを使用して追加されるものがあります。どうしてこれなの? SQLサーバーはスキーマ変更の履歴をキャプチャしていますか、最初の作成後に追加された列はALTERSでスクリプト化されていますか?これは、VSデータベースプロジェクトで使用するテーブルをスクリプト化しているため、ALTERステートメントを処理できないためです。SQL Management Studio "テーブル - >スクリプトCREATE"が作成する文字列

 
CREATE TABLE [dbo].[tblPackageType] 
(
    [PackageTypeId] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, 
    [PackageTypeDesc] [varchar](50) NOT NULL 
) ON [PRIMARY] 
ALTER TABLE [dbo].[tblPackageType] ADD [EDIcode] [varchar](10) NOT NULL 
ALTER TABLE [dbo].[tblPackageType] ADD [EDI211] [varchar](10) NULL 

答えて

1

スキーマの変更の履歴を取得するSQLサーバーで、最初の作成後に追加された列は変更してスクリプト化されていますか?

はい。

この問題を回避するには、スクリプトを必要なすべての列を含む作成に変更し、実行後に更新された定義が保存されます。

関連する問題