提示的错误是把插入的内容也作为sql执行语句分析了:
服务器: 消息 105,级别 15,状态 1,行 6
字符串 '/****** Object:  Table [dbo].[ActiveService]    Script Date: 2003-5-23 0:56:30 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[ActiveService]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [ActiveService]
' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 6
第 6 行: '/****** Object:  Table [dbo].[ActiveService]    Script Date: 2003-5-23 0:56:30 ******/
if exists (select * from dbo.sysobjects ' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 4
第 4 行: '2003' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: ',
N' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: 'ActiveService' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: '2003' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: ',' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 3
字符串 '
)
' 之前有未闭合的引号。

解决方案 »

  1.   

    不行,因为Go是其中的一部分来的.而且即使去掉GO也报错.奇怪的是用c#程序直接运行没有错误,结果也正确.
      

  2.   

    只是因为ADO传递到SQLSERVER后,ADO会去处一些回车和空格,并且对单引号和双引号进行了转换。
    并且你在C#种连接字符串时也加入了一些T-SQL与否不支持的换行或字符:比如:
    if exists (select * from dbo.sysobjects where id = object_id(N''[ActiveService]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
    drop table [ActiveService]
    在MSSQLSERVER正确的应该:
    if exists (select * from dbo.sysobjects where id = object_id(N'[ActiveService]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [ActiveService]