Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何检查表是否存在,如果不存在,如何创建表?_Sql Server - Fatal编程技术网

Sql server 如何检查表是否存在,如果不存在,如何创建表?

Sql server 如何检查表是否存在,如果不存在,如何创建表?,sql-server,Sql Server,我想编写代码来检查SQL Server 2008中的表是否已经存在,如果不存在,则创建它,然后将记录插入其中。 请告诉我怎么做? 是否需要为其创建存储过程 IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.TABLES T WHERE T.TABLE_SCHEMA = 'dbo' AND T.TABLE_NAME = 'YOURTABLENAME' ) BEGIN CREATE TABLE

我想编写代码来检查SQL Server 2008中的表是否已经存在,如果不存在,则创建它,然后将记录插入其中。 请告诉我怎么做? 是否需要为其创建存储过程

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
如果count返回0,则表示该表不存在


如果count返回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.';

要执行此操作,您需要查看系统视图:

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.';