我正在收到一个错误,试图创建一个基于DOB列的计算列的外部表,目的是将日期分为三列(年,月,每天(。
DBO的示例列:
| FirstName | LastName | DOB | DOBYear | DOBMonth | DOBDay |
SQL代码:
CREATE EXTERNAL TABLE [dbo].Person
(
FirstName VARCHAR(250),
LastName VARCHAR(250),
DOB datetimeoffset,
DOBYear DATE AS DATEPART("yyyy", DOB)
)
WITH
(
LOCATION='.....'
, DATA_SOURCE = ....
, FILE_FORMAT = ....
, REJECT_TYPE = VALUE
, REJECT_VALUE = 0
)
;
但是,由于我在下面收到此错误时,我永远无法让它得到辩护:
Msg 103010, Level 16, State 1, Line 22
Parse error at line: 28, column: 16: Incorrect syntax near 'DATEPART'.
如何解决这个问题?我有这样的理论:也许这是不受外部桌子支持的?如果有一种实施方法,是否有任何建议?
Azure SQL数据仓库外部表不支持计算的列。但是,您可以在顶部创建视图以达到相同的目的,例如
CREATE VIEW dbo.vw_person
AS
SELECT
FirstName,
LastName,
DOB,
DATEPART( yyyy, DOB ) AS DOBYear
FROM dbo.Person
nb DATEPART
参数不接受报价,所以我纠正了您的示例。