2012-07-03 5 views
0

Можно создать дубликат:
SQL Server: Check if table existsпроверить, если таблица существует SQL SERVER

Я работаю с 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 заявление для него. Может ли кто-нибудь помочь мне?

+1

http://stackoverflow.com/questions/167576/sql-server-check-if-table-exists –

ответ

1
IF OBJECT_ID('tablename','U') is not null 
-- table exists 

или

SELECT * 
    FROM sys.tables 
    WHERE name = 'mytable' 
    AND schema_id = SCHEMA_ID('myschema') 
0
IF NOT EXISTS (SELECT * 
       FROM INFORMATION_SCHEMA.TABLES 
       WHERE TABLE_SCHEMA = 'testSchema' 
       AND TABLE_NAME = 'testTable') 
BEGIN 
    --create table 
END 
+1

является '!' Действительный оператора для T-SQL? –

+0

спасибо ig и YS. – manurajhada

0

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 
Смежные вопросы