【问题标题】:Can you assign the result from a SQL Query as the name of a file?您可以将 SQL 查询的结果指定为文件名吗?
【发布时间】:2013-08-30 23:23:26
【问题描述】:

此代码创建一个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)

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

【问题讨论】:

    标签: sql powershell sqlcmd


    【解决方案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

    【讨论】:

    • 太棒了!有效。注意:由于以下错误“无法加载文件或程序集 'Microsoft.SqlServer.Smo, Version=9.0.242.0,...”,我在配置 SMO 时遇到了一些问题,解决了本文maxtblog.com/2011/07/…之后的问题>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多