0

SQL Server 2008 にテーブルが既に存在するかどうかを確認するコードを記述し、存在しない場合は作成してレコードを挿入したいと考えています。方法を教えてください。そのためのストアド プロシージャを作成する必要がありますか?

4

3 に答える 3

5
IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.TABLES T
        WHERE T.TABLE_SCHEMA = 'dbo'
        AND T.TABLE_NAME = 'YOURTABLENAME'  )
    BEGIN

        CREATE TABLE dbo.YOURTABLENAME
        (
            ColumnDefinitionsHere
        )
    END

GO
于 2013-08-23T09:54:00.760 に答える
0
(SELECT count(*) 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable')

count が 0 を返す場合、テーブルが終了していないことを意味します

于 2013-08-23T09:55:55.373 に答える
0

これを行うには、システム ビューを調べる必要があります。

IF  NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SomeTable]') AND type in (N'U'))
BEGIN
    CREATE TABLE [dbo].[SomeTable](
        [SomeId] [int] NOT NULL
    )
END ELSE PRINT 'SomeTable already exists.';
于 2013-08-23T10:01:42.020 に答える