解析查询时出错。 [令牌行号]创建表时出现sql错误
大家好,我正在尝试在 sql Compact 中创建表。
这是查询:
CREATE TABLE [dbo.A]
(
Id nvarchar(37) NOT NULL CONSTRAINT Info_PK PRIMARY KEY,
ImportDate datetime NOT NULL
);
CREATE TABLE [dbo.B]
(
Id uniqueidentifier PRIMARY KEY,
DeviceId smallint,
);
但它在尝试创建表 B 的行中给出了错误。
Hi guys im tryin to create tables in sql compact.
Here is the query:
CREATE TABLE [dbo.A]
(
Id nvarchar(37) NOT NULL CONSTRAINT Info_PK PRIMARY KEY,
ImportDate datetime NOT NULL
);
CREATE TABLE [dbo.B]
(
Id uniqueidentifier PRIMARY KEY,
DeviceId smallint,
);
But it is giving error in the line where it is tryin to create table B.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我用 google 搜索了这个,听起来您正在使用
SQL CE
(为了将来的参考,最好告诉我们您正在使用的 SQL 实现是什么)。CE 不支持将括号
[]
作为分隔符。尝试从表名中删除它们。I googled this and it sounds like you are using
SQL CE
(for future reference it's always good to tell us what implementation of SQL you are using).Brackets
[]
are not supported as delimiters in CE. Try removing those from your table names.尽管具有多个查询的批处理可以在 SQL Server Management Studio 上运行,但它无法与 SqlCeCommand 一起运行。
您必须将批处理拆分为多个查询(您可以使用事务来确保所有查询都执行或不执行)。我建议使用 ExecuteNonQuery 因为它不使用游标(这可能会在事务中出现一些错误)。
您可以使用以下示例。
Despite the fact a batch with multiple query is working on SQL Server Management Studio, it won't work with SqlCeCommand.
You have to split your batch in multiple query (you can use a transaction to be sur all the query are executed or none). I recommand to use ExecuteNonQuery as it doesn't use cursor (which could make some error in a transaction).
You could use the following sample.
不要使用dbo。 SQL CE 不支持架构。
并且您可能需要单独执行查询。
这是一个类似的问题和解决方案:
http://social. msdn.microsoft.com/Forums/en-US/sqlce/thread/d6f1db96-8724-4376-990e-3f6da18c2d08/
Don't use dbo. Schemas are not supported in SQL CE.
And you may need execute your queries separately.
Here is a similar problem and the solution:
http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/d6f1db96-8724-4376-990e-3f6da18c2d08/
我会删除 DeviceId Smallint 之后的逗号
I would remove the comma after DeviceId smallint