【发布时间】:2019-02-07 23:03:18
【问题描述】:
我正在尝试将当前日期插入 Azure SQL 数据仓库中的 datetime 列,但出现以下错误。
CREATE TABLE TEST (MYTEXT VARCHAR(15), MYDATE DATETIME);
INSERT INTO TEST (MYTEXT, MYDATE)
VALUES ('ABCD', GETDATE());
消息 104334,第 16 级,状态 1,第 11 行
插入值语句只能包含常量文字值或变量引用。
【问题讨论】:
-
好吧,
GETDATE()既不是常量字面值也不是变量引用。请改用INSERT .. SELECT。 -
您能详细说明一下吗?同样的语句在 SQL Server 中也有效。
-
@user2263025,它现在可以工作,但在过去,SQL Server 也会触发类似的错误。也许 ADW 对
INSERT INTO的要求比常规数据引擎更严格 -
而且 Azure SQL 数据仓库不是 SQL Server。相同的产品系列,不完全相同的实现。实际上,在 SQL Server 2017 的
sys.messages中找不到该特定错误消息。docs 可能与提及这一点有关(他们只提及不同的语法,但该语法提及expression,没有任何限制关于表达式类型)。 -
那么,如何将当前日期插入 ADW 中的日期时间列?
标签: sql sql-server sql-insert