6

我们的数据库包含大约 600 个存储过程和函数。我们正在尝试更好地管理对数据库脚本的更改,而无需购买任何额外的软件。

我们想使用> Tasks > Generate ScriptsSQL Server Management Studio 中的函数为数据库中的每个存储过程和函数自动生成单独的文件。

这篇文章几乎总结了我们为实现这一目标而采取的步骤:http: //earljon.wordpress.com/2008/04/10/sql-server-2005-scripting-each-objects-to-a-separate-file/

我们遇到的唯一问题是 Management Studio 用于文件名的默认命名约定。它将脚本类型后缀到文件名的末尾,如 sodbo.Name.StoredProcedure.sqldbo.Name.UserDefinedFunction.sql. 我们想改变它,所以文件名是SP_Name.sqland FN_Name.sql

是否可以在 SQL Server Management Studio 中自定义输出文件名格式?我们希望向导输出此文件名约定,而不是必须使用单独的软件来批量重命名它们。

谢谢,尼克

4

2 回答 2

5

powershell script rename.ps1,在包含要重命名的文件的文件夹中运行:

Get-ChildItem -Filter "*.Table.sql" |Rename-Item -NewName {$_.name -replace '.Table.sql','.sql'}
Get-ChildItem -Filter "*.UserDefinedFunction.sql" |Rename-Item -NewName {$_.name -replace '.UserDefinedFunction.sql','.sql'}
Get-ChildItem -Filter "*.StoredProcedure.sql" |Rename-Item -NewName {$_.name -replace '.StoredProcedure.sql','.sql'}
Get-ChildItem -Filter "*.View.sql" |Rename-Item -NewName {$_.name -replace '.View.sql','.sql'}

Get-ChildItem -Filter " .Role.sql" |Rename-Item -NewName {$_.name -replace '.Role.sql','.sql'} Get-ChildItem -Filter " .Schema.sql" |Rename- Item -NewName {$ .name -replace '.Schema.sql','.sql'} Get-ChildItem -Filter "*.Synonym.sql" |Rename-Item -NewName {$ .name -replace '.Synonym.sql ','.sql'} Get-ChildItem -Filter " .UserDefinedTableType.sql" |重命名-Item -NewName {$_.name -replace '.UserDefinedTableType.sql','.sql'} Get-ChildItem -Filter "。 UserDefinedTableType.sql" |重命名-项目-NewName {$_.name -replace '.UserDefinedTableType.sql','.sql'}

于 2015-10-21T10:10:33.290 回答
2

在 SSMS 中没有设置来控制它,所以你的选择是:

  • 编写脚本以在生成文件后重命名文件
  • 编写一个使用SMO生成脚本的脚本
  • 查找可让您控制文件名的第三方工具
于 2013-05-10T14:34:08.870 回答