目前,SSMS 不支持此功能。
您可以像在 SSMS UI 中编写的那样对外部表进行一一编写脚本。
我们确实计划在未来为此提供支持。
您可以使用 PowerShell 编写多个外部表的脚本。
看看我们写的blog post 了解详情。
博文摘要:
-
打开 PowerShell
-
运行:Install-Module dbatools
-
生成创建外部表的脚本
如果您已在 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 数据库中的管理任务。在此示例中,您已经看到生成创建和删除表的脚本很热门,但您可以轻松修改此脚本以创建/删除用户、数据库等。