gpt4 book ai didi

azure - 任务 - 在 Azure Synapse Serverless SQL 中生成脚本

转载 作者:行者123 更新时间:2023-12-02 23:00:13 27 4
gpt4 key购买 nike

我正在使用通过最新版本的 SSMS 连接的 Azure Synapse Serverless SQL 实例。我在 Azure Data Lake (Gen2) 中的 parquet 文件上定义了几个外部表。

我的问题是如何使用典型的“任务生成脚本”来生成类似于我在 SQL Server 中使用的外部表定义?或者做类似的事情(批量导出外部表定义)......此时,看来我需要逐个外部表去外部表(右键单击 ->脚本表为 ->删除并创建到 ->文件,等)。

如有任何建议,我们将不胜感激,谢谢!

最佳答案

目前 SSMS 不支持此功能。您可以像从 SSMS UI 中编写一样逐一编写外部表的脚本。

我们计划将来为此提供支持。

您可以使用 PowerShell 编写多个外部表的脚本。看看这个blog post我们为详细信息而写的。

博客文章摘要:

  1. 打开 PowerShell

  2. 运行:安装模块 dbatools

  3. 生成创建外部表的脚本

    如果您已在 Synapse SQL 中创建了一组外部表并且想要移动它们定义到另一个实例或在本地或某些源中保留创建脚本控制系统,您可以轻松创建创建所有外部表的脚本。

如果您安装了最新版本的 DbaTools,您可以使用以下脚本为一组表生成 CREATE EXTERNAL TABLE 脚本:

    $loginName = "<login>"
$synapseSqlName = "<sql endpoint name>"
$databaseName = "<database name>"
$login = Get-Credential -Message "Enter your SQL serverless password" -UserName $loginName
$script = Get-DbaDbTable -SqlInstance "$synapseSqlName.sql.azuresynapse.net" -Database $databaseName -SqlCredential $login | Export-DbaScript -Passthru | Out-String
$script -replace ' NULL', ''

您需要输入 Synapse SQL 无服务器端点的名称(而不是)(例如 mysynapsesqlendpoint-ondemand)、用于连接到 Synapse SQL 数据库的登录名(而不是 )以及放置外部表的数据库的名称而不是。

运行此脚本后,您将在输出窗口中看到创建外部表的脚本。

Export-DbaScript使您能够自定义脚本并在某些文件中导出 CREATE TABLE 语句、定义编码、省略架构等。您有许多选项可用于自定义脚本生成。

在上面的示例中,我使用了 Get-DbaDbTable命令从我的数据库中获取所有外部表。您还可以自定义此命令以从多个数据库获取表或指定要导出的表集。

结论

DbaTools 是一组非常有用的 PowerShell 命令,可让您自动执行 Synapse SQL 数据库中的管理任务。在此示例中,您已经看到生成创建和删除表的脚本很热门,但您可以轻松修改此脚本以创建/删除用户、数据库等。

关于azure - 任务 - 在 Azure Synapse Serverless SQL 中生成脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65221962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com