1

重複の可能性:
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 ステートメントの書き方がわかりません。誰でも私を助けてもらえますか?

4

3 に答える 3

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

また

SELECT *
   FROM sys.tables
   WHERE name = 'mytable'
   AND schema_id = SCHEMA_ID('myschema')
于 2012-07-03T11:15:13.710 に答える
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
于 2012-07-03T11:44:06.543 に答える
0
IF NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'testSchema' 
                 AND  TABLE_NAME = 'testTable')
BEGIN
    --create table
END
于 2012-07-03T11:23:15.083 に答える