Powershell读取SQL Server二进制字段,并保存内容为文件

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

<# Export FileStreamData to folder 
# ALZDBA 20110912
# http://www.sqlservercentral.com/Forums/Topic1173159-391-1.aspx?
#
# This script will export filestream column Document to the desired target location
# and name the file using the data content of column FileName
#>

####################### 
<# 
Download Invoke-Sqlcmd2 from: http://gallery.technet.microsoft.com/ScriptCenter/7985b7ef-ed89-4dfd-b02a-433cc4e30894/
#Invoke-Sqlcmd2
#>

Clear-Host 

$tb =  Invoke-Sqlcmd2 -ServerInstance YourSQLInstance -Database Adventureworks2008 -Query 'Select FileName, Document from [Production].[Document] where document is not null '  -as 'DataTable'
#$tb.rows.count 
for ($i=0;$i -lt $tb.rows.count;$i++) {
	
	$TheDoc = $tb.Rows[$i].Document 
	$TargetFile = $('c:\temp\Export_{0}' -f $tb.Rows[$i].FileName )
	#$TheDoc.Length 
	[System.IO.File]::WriteAllBytes($TargetFile,$TheDoc)
}

Write-Host $("[{0}] documents exported" -f $tb.rows.count )