Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何修改SQL Server Management Studio中自动生成的脚本文件的默认文件名格式?_Sql Server 2008_Ssms - Fatal编程技术网

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

Sql server 2008 如何修改SQL Server Management Studio中自动生成的脚本文件的默认文件名格式?,sql-server-2008,ssms,Sql Server 2008,Ssms,我们的数据库包含大约600个存储过程和函数。我们正在努力更好地管理对数据库脚本的更改,而不必购买任何其他软件 我们希望使用SQL Server Management Studio中的>任务>生成脚本功能为数据库中的每个存储过程和函数自动生成单个文件 本文大致总结了我们为实现这一目标所采取的步骤: 我们遇到的唯一问题是Management Studio对文件名使用的默认命名约定。它将脚本类型作为文件名末尾的后缀,如sodbo.name.StoredProcedure.sql或dbo.name.Us

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

我们希望使用SQL Server Management Studio中的
>任务>生成脚本
功能为数据库中的每个存储过程和函数自动生成单个文件

本文大致总结了我们为实现这一目标所采取的步骤:

我们遇到的唯一问题是Management Studio对文件名使用的默认命名约定。它将脚本类型作为文件名末尾的后缀,如so
dbo.name.StoredProcedure.sql
dbo.name.UserDefinedFunction.sql
。我们想更改它,使文件名为
SP_name.sql
FN_name.sql

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

谢谢,
Nick

SSMS中没有控制这一点的设置,因此您可以选择:

  • 编写脚本以在生成文件后重命名这些文件
  • 编写用于生成脚本的脚本
  • 找到一个第三方工具,让您控制文件名

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'}
获取ChildItem-Filter.Role.sql“|重命名Item-NewName{$\.name-replace.Role.sql','.sql'} 获取ChildItem-Filter.Schema.sql“|重命名项-NewName{$.name-replace.Schema.sql','.sql'} Get-ChildItem-Filter“*.Synonym.sql”| Rename-Item-NewName{$.name-replace'.Synonym.sql','.sql'} Get ChildItem-Filter“.UserDefinedTableType.sql”|重命名项-NewName{$\uName-replace'.UserDefinedTableType.sql','.sql'}
Get ChildItem-Filter.UserDefinedTableType.sql“| Rename Item-NewName{$\ uName-replace.UserDefinedTableType.sql','.sql'}

据我所知,没有办法影响这个命名-您必须接受生成的输出,并在事实发生后对其进行批量重命名。该死,这是不可能的!谢谢。很棒的东西——谢谢。我想摆脱dbo。前缀太多了,所以我刚才添加了:Get ChildItem-Filter“*.sql”| Rename Item-NewName{$\uu0.name-replace'dbo.”,'}