检查表是不是存在sql server [重复]

Posted

技术标签:

【中文标题】检查表是不是存在sql server [重复]【英文标题】: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 语句。谁能帮帮我?

【问题讨论】:

***.com/questions/167576/… 【参考方案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 的有效运算符吗?

以上是关于检查表是不是存在sql server [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 SQL Server CE 3.5 中是不是存在表

SQL Server:检查表列是不是存在并删除行

如何在SQL Server2005数据库中检查一个表是不是存在,如存在就删除表记录,如不存在就建表.

如何检查 SQL Server 中是不是存在列?

如何在合并数据集之前检查行是不是存在(SQL Server)

SQL Server 表中存在 UDT [重复]