【问题标题】:check if table exists sql server [duplicate]检查表是否存在sql server [重复]
【发布时间】:2012-07-03 11:07:03
【问题描述】:

可能重复:
SQL Server: Check if table exists

我正在使用 Java 和 MS SQL Server 2008,我只想在检查数据库中是否不存在表后创建一个表。

 public void addTestTable(){
  jdbcTemplate.execute(
            "create table [mydatabase].[dbo].[test] (ID integer not null identity, CREATEDBY varchar(50), CREATEDAT datetime, TITLE varchar(50), NRQUEST int, FORGROUP int, primary key(id))"

            );

}

这是我的 createTable 函数,我需要另一个布尔函数来检查表是否已经存在,但我不知道如何为其编写 sql 语句。谁能帮帮我?

【问题讨论】:

标签: java sql-server


【解决方案1】:
IF OBJECT_ID('tablename','U') is not null
-- table exists 

SELECT *
   FROM sys.tables
   WHERE name = 'mytable'
   AND schema_id = SCHEMA_ID('myschema')

【讨论】:

    【解决方案2】:
    
    if not exists(select 1 from sys.tables where name ='test' and schema_id = SCHEMA_ID('dbo'))
    begin
      create table [dbo].[test] (ID integer not null identity, CREATEDBY varchar(50), 
      CREATEDAT datetime, TITLE varchar(50), NRQUEST int, FORGROUP int, primary key(id)) 
      print 'table created'
    end
    go
    

    【讨论】:

      【解决方案3】:
      IF NOT EXISTS (SELECT * 
                       FROM INFORMATION_SCHEMA.TABLES 
                       WHERE TABLE_SCHEMA = 'testSchema' 
                       AND  TABLE_NAME = 'testTable')
      BEGIN
          --create table
      END
      

      【讨论】:

      • ! 是 T-SQL 的有效运算符吗?
      猜你喜欢
      • 2012-11-01
      • 2010-09-15
      • 2011-02-25
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      相关资源
      最近更新 更多