【发布时间】:2010-12-05 03:16:50
【问题描述】:
我似乎无法执行使用 DbCommand 对象创建数据库的 SQL。我究竟做错了什么?这是我的代码:
DbConnection connection; // initialized and opened elsewhere
DbCommand cmd = connection.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
这是错误:
查询语法无效。,接近 术语“/”,第 1 行,第 2 列。 描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 代码。
异常详情: System.Data.EntitySqlException: 查询语法无效。,近期 '/',第 1 行,第 2 列。
这是文件的第一部分。仅针对第一行的 cmets 引发异常:
/****** Object: Table [dbo].[User] Script Date: 10/08/2009 12:14:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User](
[Id] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[EmailAddress] [nvarchar](100) NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
同样的 SQL 脚本在 SQL Management Studio Express 中执行得很好(实际上是应用程序生成了这个脚本!)。这只是 Visual Studio 自己的服务器资源管理器查询视图和我自己的代码似乎失败了。
【问题讨论】:
-
注意:GO 不是 SQL 命令,它是对客户端工具(例如 OSQL、查询分析器,或者本例中的 SMSS。)的命令,用于将脚本分成单独的“批次”。每个批次都是对服务器的单独调用。