Ярлык для добавления файлов в локальную базу данных SQL - PullRequest
0 голосов
/ 27 мая 2011

Я хотел бы иметь возможность щелкнуть правой кнопкой мыши по файлу (файлам) и "отправить" в локальную базу данных MSSQL.Подробности в том, что я хотел бы сохранить содержимое файла в столбце «содержимое», а имя файла - в столбце «имя файла» ... как роман :)

* В большинстве случаев содержимое файла является HTML.

Похоже, что это возможно через оболочку Windows / оболочку SQL, используя ярлык для команды в папке "shell: sendto".

1 Ответ

0 голосов
/ 18 декабря 2015
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null  

$Server1 = New-Object ("Microsoft.SqlServer.Management.Smo.Server") 'SQLSERVER'  
$Server1.databases["DB"].tables["Table"].rowcount  
$RowCount = $server1.databases["DB"].tables["Table"].rowcount.ToString()  

$TotalRecords = [int]$RowCount  

$wc = New-Object system.net.WebClient  
$url = ""  

$files = @(Get-ChildItem c:\test\*.*)  

"Number of files $($files.length)"  
# Errors out when no files are found  
if($files.length -lt 1) { return }  

foreach($file1 in $files) { 
    # $txt = Get-Content($file1)  
    # $txt = $txt.Replace("'", "''")  
    # Write-Host $file1.name + "  - - " + $Txt  

    $url1 =  $url + $file1  
    Write-Host("URL is " + $url1)  

    $webpage = $wc.DownloadData($url1)  
    $string = [System.Text.Encoding]::ASCII.GetString($webpage)  
    $string = $string.Replace("'", "''")  

Invoke-SqlCmd -ServerInstance SERVER -Query "Insert into DATABASE.dbo.Table(text,filename) Values ('$string','$file1')"}  
...