Sql server 编写创建表的脚本时出错

Sql server 编写创建表的脚本时出错,sql-server,Sql Server,我正在使用SQLServer2005。 我正在编写一个T sql脚本,需要在数据库中添加一个表, 但是我想添加一个检查,检查表是否已经创建。 但我的脚本给了我以下错误消息: Msg 102, Level 15, State 1, Line 7 Incorrect syntax near 'ON'. Msg 2714, Level 16, State 6, Line 1 There is already an object named 'DeliveryChargeRegion' in the d

我正在使用SQLServer2005。 我正在编写一个T sql脚本,需要在数据库中添加一个表, 但是我想添加一个检查,检查表是否已经创建。 但我的脚本给了我以下错误消息:

Msg 102, Level 15, State 1, Line 7
Incorrect syntax near 'ON'.
Msg 2714, Level 16, State 6, Line 1
There is already an object named 'DeliveryChargeRegion' in the database.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'END'.

GO

此代码与SSMS生成的代码类似:

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TABLE_NAME_HERE]') AND type in (N'U'))
BEGIN
    -- CREATE TABLE HERE
END
另一种方法

if object_id('tablename') is NULL
BEGIN
    CREATE TABLE tableName

END

sys.objects方法没有问题,我只是觉得上面的内容更容易编写和阅读…

没有看到您的脚本很难调试…请提供脚本,否则我不得不说“这不是一个真正的问题”。我不认为它专门检查表。它可以是具有该名称的任何类型的对象。哦,它绝对不是,它是任何类型的数据库对象,很好的一点,谢谢…不是错误消息,只是如果一个对象未定义,它的对象id为空。您可以使用上面的代码示例来检查存储过程、函数等。
if object_id('tablename') is NULL
BEGIN
    CREATE TABLE tableName

END