MSSQL create table if not exists, SQL SERVER 2005

Dalším dílem seriálu o rozdílech MySQL a MSSQL je vytváření tabulky jen v případě, že tabulka neexistuje. V MySQL snadné, v MSSQL musíme pátrat v metadatech.


Řešení problému v MySQL:

  1. CREATE TABLE IF NOT EXISTS `table` (
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3. `name` varchar(32) NOT NULL,
  4. PRIMARY KEY (`id`)
  5. )

a v MSSQL:

  1. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[table]') AND type in (N'U'))
  2. BEGIN
  3. CREATE TABLE [dbo].[table] (
  4. [id] int NOT NULL,
  5. [name] varchar(32) NULL,
  6. PRIMARY KEY CLUSTERED ([id])
  7. )
  8. END