[MSSQL] Problem z warunkowym utworzeniem tabeli

0

Cześć, najpierw chcę sprawdzić, czy tabela istnieje. Jeśli nie, to ją tworzę, jeśli tak, to sprawdzam, czy istnieją pewne kolumny i ewentualnie je dodaję.
Kawałek mojego kodu:

if not exists(SELECT * FROM INFORMATION_SCHEMA.TABLES
              WHERE TABLE_NAME = 'tabela')
begin
  CREATE TABLE [dbo].[tabela](
	[ID] [bigint] IDENTITY(1,1) NOT NULL,
	[cID] [bigint] NULL,
	[rID] [bigint] NULL,
	[finger] [int] NULL,
	[inoutMode] [int] NULL,
	[name] [varchar](50) COLLATE Polish_CI_AS NULL,
	[isGhost] [int] NULL,
	[advanced] [int] NULL,
	[getLogs] [int] NULL,
 CONSTRAINT [PK_bioentry] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) on [primary]

GO
end else
begin
  if not exists(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
                WHERE TABLE_NAME='tabela' AND COLUMN_NAME='finger')
  begin
    alter table tabela add finger int  
  END  
end;

Gdy próbuję to uruchomić, wyskakuje mi błąd przy: ) on [primary]

"Msg 102, Level 15, State 1, Line 21
Incorrect syntax near 'primary'."

O co chodzi??

DOPISANE

OK, już wiem. Z jakiegoś powodu trzeba pozbyć się BEGIN i END, i GO, które stoją przy CREATE i wtedy chodzi.

0

miedzy begin i end nigdy go


IF OBJECT_ID('tabela') IS NOT NULL AND NOT EXISTS(SELECT * FROM syscolumns WHERE id = OBJECT_ID('tabela') AND name = 'finger')
    alter table tabela add finger int  
GO

IF OBJECT_ID('tabela') IS NULL
  CREATE TABLE [dbo].[tabela](
        [ID] [bigint] IDENTITY(1,1) NOT NULL,
        [cID] [bigint] NULL,
        [rID] [bigint] NULL,
        [finger] [int] NULL,
        [inoutMode] [int] NULL,
        [name] [varchar](50) COLLATE Polish_CI_AS NULL,
        [isGhost] [int] NULL,
        [advanced] [int] NULL,
        [getLogs] [int] NULL 
) on [primary]
GO

IF OBJECT_ID('tabela') IS NOT NULL AND OBJECT_ID('PK_bioentry') IS NULL
ALTER TABLE [tabela] ADD CONSTRAINT [PK_bioentry] PRIMARY KEY CLUSTERED ([ID] ASC) ON [PRIMARY]
GO

1 użytkowników online, w tym zalogowanych: 0, gości: 1