如何使用Azure SQL格式化文本数据

时间:2018-07-28 02:19:18

标签: sql azure-sql-database

我刚刚开始使用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);

为什么这会发生在我身上?谢谢。

2 个答案:

答案 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语句中将双引号更改为单引号。