[英]Can't CREATE EXTERNAL DATA SOURCE in SQL
我正在尝试创建一个外部数据源来访问Azure Blob存储。 但是,我在创建实际数据源时遇到问题。
我已按照此处的说明进行操作: 在azure blob存储中批量访问数据和创建外部数据源-事务sql的 示例 。 我正在使用Windows身份验证的客户端计算机上通过SSMS访问的VM上使用SQL Server 2016,没有任何问题。 说明说,创建此外部数据源适用于SQL Server 2016和Azure Blob存储。
我已经创建了主密钥:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <password>
并且,数据库范围凭证
CREATE DATABASE SCOPED CREDENTIAL UploadCountries
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = <key>;
我已经通过查询sys.symmetric_keys和sys.database_scoped_credentials验证了这两个数据库中是否都存在。
但是,当我尝试执行以下代码时,它说“'EXTERNAL'附近的语法不正确”
CREATE EXTERNAL DATA SOURCE BlobCountries
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<somewhere>.table.core.windows.net/<somewhere>',
CREDENTIAL = UploadCountries
);
感谢您的想法和帮助!
史蒂夫。
在“ 对Azure Blob存储中的数据进行批量访问的示例 ”中,我们可以找到:
从SQL Server批量访问Azure blob存储至少需要SQL Server 2017 CTP 1.1。
在“ CREATE EXTERNAL DATA SOURCE(Transact-SQL) ”的“ 参数”部分中,我们可以找到类似的信息:
在SQL Server 2017中使用批量插入或OPENROWSET执行批量操作时,请使用BLOB_STORAGE
您正在使用SQL Server 2016,因此当您为Azure Blob存储创建外部数据源时, Incorrect syntax near 'EXTERNAL'
错误Incorrect syntax near 'EXTERNAL'
得到Incorrect syntax near 'EXTERNAL'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.