我有一张桌子(我没有创建它),我试图插入一个新行。其中一列名为DEC
,这是SQL中的保留字。
我无法更改列名,因此我需要能够使用insert语句。不过,我有一些问题。我试过单引号,括号和反引号,但我无法摆脱
INSERT INTO语句中的语法错误。
我一直在接受(大概是因为我没有正确地逃避DEC
)。
这是我现在得到的插入声明:
INSERT INTO spaceObjectTable (spaceObjectName, RA, DEC)
VALUES (spaceObjectName, RA, [DEC]);
修改 现在使用这个insert语句:
INSERT INTO spaceObjectTable (spaceObjectName, RA, [DEC]) VALUES ('spaceObjectName', 'RA', 'DEC');
并收到此错误:Operation must use an updateable query.
答案 0 :(得分:0)
如果启用了ANSI SQL模式,则可以使用双引号,否则可以使用专有的反向标记。 (在这个答案中介绍了各种键盘布局上的`字符的位置) 像这样:
INSERT INTO spaceObjectTable (spaceObjectName, RA, "DEC") ...
或:
INSERT INTO spaceObjectTable (spaceObjectName, RA, `DEC`) ...
答案 1 :(得分:0)
如果是SQL Server,它应该是
INSERT INTO spaceObjectTable
(spaceObjectName, RA, [DEC])
VALUES
('M-51', 13.5, 47.2);
假设M-51(RA和Declination是近似值)。
关于您当前的错误消息:您使用的是表格还是视图?你有这张桌子的权限吗?
编辑:GP告诉我们RA和DEC列的数据类型是字符串,所以
VALUES
('M-51', '13h 29m 53s', '47deg 11.718min');
这是在问题的编辑形式中使用的,应该有用。