1

此代码创建一个C:\DestinationFolder\MyQuery.txt存储数据库版本信息的文件(例如 11.0.3128.0):

Declare @Cmd Varchar(6000)
Declare @Query Varchar(2000)

Set @Query = 'Select SERVERPROPERTY(''ProductVersion'')'
Set @cmd = 'bcp "' + @Query + '" queryout ' + 'C:\DestinationFolder\MyQuery.txt' + ' -c -T -t'
Exec master..xp_cmdshell @cmd 

是否可以修改上面的代码,使新创建的文件以查询结果命名?(例如 11.0.3128.0.txt)

我的目标是能够运行查询并将结果存储为文件名。

4

1 回答 1

1

根本不需要执行任何查询 - 您可以通过 PowerShell 和 SMO 对象严格执行此操作。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null;
$MySQLObject = new-object Microsoft.SqlServer.Management.Smo.Server "myservername";
$VersionNumber = $MySQLObject.Information.VersionString;
$MyFileName = "C:\DestinationFolder\$VersionNumber.txt";
Add-Content $MyFileName $VersionNumber

请参阅http://sqlmag.com/powershell/using-sql-server-management-objects-powershell

于 2013-08-31T01:20:51.687 回答