2017-08-18 6 views
0

私が達成しようとしているのは、DATEDIFF関数を使用してデータベースのバックアップ保持期間を調べることです。 しかし、DATEDIFFを使用するには、他の場所にあるかどうかわからないため、結果のデータを比較するために何かが必要です。結果の出力列をMSSQLのオブジェクトとして使用する方法

なぜ結果からですか?

RESTORE HEADERONLY FROM DISK = 'X:\Backups\Backuptest.bak' 

私は生産の一時テーブルを作成することはできませんよかなり確信している:

私は、このコマンドは私が私の仕事(BackupFinishDate、ExpirationDateと)を達成するために必要なすべての情報を与えることが判明しましたサーバーなので、これが1つのオプションであれば、私はそれを使うことはできません。

PS!バックアップの保存期間を見つけるより良い方法があれば、それをうまく使用したいと思います。これがPowerShellで可能であれば、それはさらに優れています。

答えて

0

まあ、..私は自分自身を与えた私はPowerShellのヒントで自分の質問に答えたように見えた:P

ソリューションました:

$bkp_start = Invoke-Sqlcmd -ServerInstance myServer -Query "RESTORE HEADERONLY FROM DISK = 'X:\Backups\Backuptest.bak'" | Select-Object -ExpandProperty BackupFinishDate 
$bkp_end = Invoke-Sqlcmd -ServerInstance myServer -Query "RESTORE HEADERONLY FROM DISK = 'X:\Backups\Backuptest.bak'" | Select-Object -ExpandProperty ExpirationDate 

$RetentionInDays = New-TimeSpan -Start $bkp_start -End $bkp_end | Select-Object -ExpandProperty Days 

Write-Output "Retention period : $RetentionInDays" 

私はPowerShellを愛する..少し不格好に見えますが、それ私はこの時点でより良い方法を知らない。

関連する問題