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

Posted

技术标签:

【中文标题】如何修改 SQL Server Management Studio 中自动生成的脚本文件的默认文件名格式?【英文标题】:How can I modify the default file name format for auto generated script files in SQL Server Management Studio? 【发布时间】:2013-05-09 19:05:44 【问题描述】:

我们的数据库包含大约 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 中自定义输出文件名格式?我们希望向导输出此文件名约定,而不是必须使用单独的软件来批量重命名它们。

谢谢, 尼克

【问题讨论】:

据我所知,没有办法影响此命名 - 您必须接受生成的输出,并在事后对其进行批量重命名。 【参考方案1】:

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" |重命名-Item -NewName $_.name -replace '.Role.sql','.sql' Get-ChildItem -Filter ".Schema.sql" |重命名-Item -NewName $.name -replace '.Schema.sql','.sql' Get-ChildItem -Filter "*.Synonym.sql" |重命名-Item -NewName $.name -replace '.Synonym.sql','.sql' Get-ChildItem -Filter ".UserDefinedTableType.sql" |重命名-Item -NewName $_.name -replace '.UserDefinedTableType.sql','.sql' Get-ChildItem -Filter ".UserDefinedTableType.sql" |Rename-Item -NewName $_.name -replace '.UserDefinedTableType.sql','.sql'

【讨论】:

好东西 - 谢谢。我想摆脱dbo。前缀也是,所以我刚刚添加:Get-ChildItem -Filter "*.sql" |Rename-Item -NewName $_.name -replace 'dbo.',''【参考方案2】:

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

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

【讨论】:

该死,这不可能!谢谢。

以上是关于如何修改 SQL Server Management Studio 中自动生成的脚本文件的默认文件名格式?的主要内容,如果未能解决你的问题,请参考以下文章

请问SQL server 中如何更新字段

SQL SERVER 如何修改ID列?

sql server 如何将日期时间字段修改成最接近该时间的整点时间?

sql server 如何修改一个字段为自增字段

如何修改 SQL Server 代理主作业 (Transact-SQL)

sql server 2008中如何取某字段最大值所在的一条数据(多个字段)