0

仕事でテーブルの変更をスクリプト化する必要があります。単純な「存在する場合は削除して作成する」のではなく、追加する新しい列を確認し、存在しない場合にのみテーブルを変更することを望んでいます。

誰かがスクリプトを手伝ってくれませんか? 現在、次のような単純なテーブルがあるとします。

CREATE TABLE myTable (

[ID] [int] NOT NULL,
[FirstName] [varchar] (20) NOT NULL,
[LastName] [varchar] (20) NOT NULL

)

.. varchar(50) などのフィールドを追加したいのですAddressが、スキーマにまだ存在しない場合に限ります。

4

4 に答える 4

4
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'myTable' AND COLUMN_NAME = 'Address')
BEGIN

    ALTER TABLE [dbo].[myTable] ADD 
        [Address] varchar(50) NOT NULL 
END
于 2013-07-26T15:27:13.367 に答える
1

これを試して

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[myTable ]') AND type in (N'U'))
BEGIN
 DROP TABLE [dbo].[myTable ]
END

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE myTable (

[ID] [int] NOT NULL,
[FirstName] [varchar] (20) NOT NULL,
[LastName] [varchar] (20) NOT NULL,
[Address] [varchar] (50) NOT NULL
)

また

if not exists(select * from sys.columns 
            where Name = N'Address' and Object_ID = Object_ID(N'myTable'))    
begin
    alter table myTable
    add Address varchar(50) NOT NULL
end
GO
于 2013-07-26T15:24:19.750 に答える