azure 如何通过GridConfiguration拉取一个表的列列表,类似于在常规SQL中的操作?

juzqafwq  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(131)

我遇到了一个以这种方式构造的SQL查询。代码片段没有解释,所以我不知道从哪里继续。查询工作,但我想扩大它。(此外,可能是错误的天赋,但这是在Azure Synapse上运行。)
问:如何获得整个表的列列表?另外,是否有类似于SMSS的方法来浏览此数据库中的表,以便更好地了解数据的结构?有些列名上有HTML标记(这是来自Web表单的数据)。
查询:

SELECT  *
FROM    OPENROWSET (
            PROVIDER = 'provider',
            CONNECTION = 'Account=account;Database=database',
            OBJECT = 'GridConfiguration',
            SERVER_CREDENTIAL = 'server-cred'
        )
WITH    (
            "Created Date" varchar(256),
            "<p>ClientId</p>" varchar(max),
            -- other columns
        ) AS [GridConfiguration]`

我已经尝试了列名的不同变体(带和不带HTML标记,在终止段落标记后带和不带空格),但最后都是空值,所以我想我没有得到正确的列名,或者这个数据集是由其他人策划的。

wko9yo5t

wko9yo5t1#

AFAIK OPENROWSET用于访问Azure Blob存储中的数据。我按照以下过程将数据从Azure Blob存储加载到SQL Server无服务器池。我使用以下代码创建了外部数据源:

CREATE  EXTERNAL  DATA  SOURCE [ExternalDataSource] WITH
(
   LOCATION = 'https://<storageaccount>.blob.core.windows.net/<container>'
)

参考图片:

我创建外部文件格式使用下面的代码:

CREATE  EXTERNAL  FILE  FORMAT [ExternalFileFormat] WITH
(
      FORMAT_TYPE = DELIMITEDTEXT
)

参考图片:

我使用下面的代码创建外部表:

CREATE  EXTERNAL  TABLE [dbo].[ExternalTable1]
(
     SalesNumber int,StoreShortName varchar(20),NetSales int, 
     GrossMargin int,NetSales1 int,SalesTrend int
) 
WITH
(
   LOCATION = 'Folder/File',
   DATA_SOURCE = [ExternalDataSource],
   FILE_FORMAT = [ExternalFileFormat]
)

我提取表列的列表,它的细节使用下面的代码:

sp_columns  <tableName>

参考图片:

通过这种方式我检索了所有列和它的细节。如果你想从任何sql server加载数据,AFAIK链接连接是最好的选择。

注:它在专用SQL池下执行。

相关问题