我刚刚开始使用Azure SQL查询编辑器来帮助我学习。
插入数据时,格式化TEXT数据时遇到问题。我知道我应该在TEXT数据周围使用"Quotations"
格式化数据,但是,我仍然遇到以下错误:'“'
附近的语法不正确。
表和虚拟数据的示例:
CREATE TABLE EMPLOYEE ( eno INTEGER(11), ename TEXT(30), zip INTEGER(5) DEFAULT 47405, hdate DATE, dept TEXT (30), salary INTEGER(15,3), constraint EMPLOYEE_PK primary key (eno));
INSERT INTO EMPLOYEE VALUES (5476343153, “Stanley Keller”, , 06-Mar-99, “Sales”, 75689);
INSERT INTO EMPLOYEE VALUES (5286469147, “Sergio Murray”, , 13-Mar-92, “Marketing”, 148769);
INSERT INTO EMPLOYEE VALUES (2454152346, “Laurie Hawkins”, , 22-Mar-98, “Marketing”, 92474);
为什么这会发生在我身上?谢谢。
答案 0 :(得分:2)
戈登是正确的-单一标识符是ANSI SQL的规范。
在SQL Server / SQL Azure中,如果要使用其他带引号的标识符,则需要一个会话选项以允许它。
以下是该功能的文档,该文档应该可以使原始查询正常工作(非标准SQL): https://docs.microsoft.com/en-us/sql/t-sql/statements/set-quoted-identifier-transact-sql?view=sql-server-2017
将QUOTED_IDENTIFIER设置为开
答案 1 :(得分:1)
请尝试以下操作。它对我有用。
DROP TABLE EMPLOYEE
GO
CREATE TABLE EMPLOYEE ( eno BigInt, ename NVARCHAR(30), zip INT DEFAULT 47405, hdate DATE, dept NVARCHAR(30), salary decimal(15,3), constraint EMPLOYEE_PK primary key (eno));
GO
INSERT INTO EMPLOYEE (eno, ename, hdate, dept, salary) VALUES (5476343153, 'Stanley Keller', '06-Mar-99', 'Sales', 75689);
INSERT INTO EMPLOYEE (eno, ename, hdate, dept, salary) VALUES (5286469147, 'Sergio Murray', '13-Mar-92', 'Marketing', 148769);
INSERT INTO EMPLOYEE (eno, ename, hdate, dept, salary) VALUES (2454152346, 'Laurie Hawkins', '22-Mar-98', 'Marketing', 92474);
请注意,数据类型错误,您将整数视为小数,对于整数,数据类型为int。另外,您不必为要使用默认值的字段指定逗号。在eno字段上,我必须将BigInt指定为数据类型,因为INSERT语句上的值对于整数(int)数据类型来说太大。
我在这些INSERT语句中将双引号更改为单引号。