Microsoft KB Archive/42417
Article ID: 42417
Article Last Modified on 3/14/2005
- Microsoft SQL Server 4.21a Standard Edition
- Microsoft SQL Server 6.0 Standard Edition
- Microsoft SQL Server 6.5 Standard Edition
This article was previously published under Q42417
If a CREATE TABLE statement is placed inside an IF block to prevent re-creating a table that already exists, the duplicate table name error will still be raised.
Apparently, a CREATE TABLE statement is validated before any of the flow-of-control or PRINT statements are executed.
The following code works properly:
IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME="PROTOCOL" DROP TABLE PROTOCOL GO CREATE TABLE PROTOCOL (C1 int) GO
The following code does not work properly:
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME="PROTOCOL") CREATE TABLE PROTOCOL (C1 int) GO
Additional query words: Transact-SQL Windows NT
Keywords: kbprogramming KB42417