【发布时间】:2011-08-08 17:55:23
【问题描述】:
我有命令:
INSERT INTO tbl_media
(DateAdded) VALUES (GetDate())
SELECT CAST(@@Identity AS int)
它适用于标准 sql db 但不适用于 CE db 我收到以下错误:
SQL 执行错误。
Executed SQL statement...
Error Source: SQL Server Compact ADO.NET Data Provider
Error Message: There was an error parsing the query. [Token line number = 2, Token line offset = 31, Token in error = )]
可惜这个错误没有更有用的人知道会发生什么?
干杯
更新:::::::
在使用了 Visual Studio 编辑器(垃圾)之后,我下载了 dataport 并阅读了 MSDN。好像有2个问题...
1) SELECT CAST(@@Identity AS int) 是无效的 sql
SELECT @@Identity 是
2) SqlCe服务器不喜欢我把这两个命令放在一起:
插入到 tbl_media (添加日期) 值 (getdate()) 选择@@身份
如果我在不同时间进行插入和选择,那么它可以工作。那么我该如何解决呢?我不能在不同的时间这样做我需要在创建对象时知道它们的 ID!!!
更新 2:
根据非常有帮助的 Erik E,您不能同时执行 2 个语句。因此,以下解析为正确但不起作用:
插入到 tbl_media (添加日期)值(getdate()); 选择@@身份;
所以我真正想知道的是如何保证添加记录时不会混淆身份?
即如果有人在获取他们刚刚插入的身份的身份时创建了一条记录怎么办?
【问题讨论】:
-
错误确实说第 2 行偏移 31 标记错误 = )
-
@Pete2K 删除
)后是否可以正常工作,请提供一些反馈,以便我们知道这是否仍然存在问题或可以关闭? -
不,我不会更新我的答案
标签: tsql sql-server-ce