如何在SQL Server Management Studio中修改自动生成的脚本文件的默认文件名格式?

时间:2013-05-09 19:05:44

标签: sql-server-2008 ssms

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

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

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

我们遇到的唯一问题是Management Studio用于文件名的默认命名约定。它将脚本类型添加到文件名末尾,如dbo.Name.StoredProcedure.sqldbo.Name.UserDefinedFunction.sql。我们想要更改它,因此文件名为SP_Name.sqlFN_Name.sql

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

谢谢, 尼克

2 个答案:

答案 0 :(得分:3)

powershell脚本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”| Rename-Item -NewName {$ _.name -replace'.UserDefinedTableType.sql','。sql'} Get-ChildItem -Filter“ .UserDefinedTableType.sql”| Rename-Item -NewName {$ _。name -replace'.UserDefinedTableType.sql','。sql'}

答案 1 :(得分:2)

在SSMS中没有设置来控制它,因此您的选项是:

  • 编写脚本以在文件生成后重命名
  • 编写使用SMO生成脚本的脚本
  • 查找可让您控制文件名的第三方工具