2011-11-09 19 views

回答

2

這是我做過什麼讓數據庫和其他文件夾我每次插入時自動同步到我的USB驅動器它位於:

  1. 安裝SyncToy由Microsoft製造。
    • 添加要從DB文件夾複製到USB驅動器的文件夾對。
    • 只將文件過濾到要複製的文件。
  2. 下面稱爲SyncMe.bat內容創建一個批處理程序並將其保存到USB驅動器
  3. 打開事件從控制面板查看器上。
  4. 導航到應用程序和服務日誌> Microsoft> Windows DriverFrameworks-UserMode> Operational
  5. 清除日誌以使其更容易找到正確的事件。
  6. 插入USB驅動器。
  7. 刷新日誌,查找特定於該USB驅動器的最新事件,右鍵單擊並將任務附加到此事件。
  8. 添加運行要創建

SyncMe.bat內容(更新以反映您的路徑和文件名)的SyncMe.bat程序的操作:

@echo off 

if exist "G:\SyncMe.bat" goto fileexists 

goto nofile 

:fileexists 
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\OSQL.EXE" -S computername\instancename -E -n -Q "master..sp_detach_db 'DatabaseName'" 
"C:\Program Files\SyncToy 2.1\SyncToyCmd.exe" -R 
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\OSQL.EXE" -S computername\instancename -E -n -Q "master..sp_attach_db 'DatabaseName', 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.InstanceName\MSSQL\DATA\DatabaseName.mdf','C:\Program Files\Microsoft SQL Server\MSSQL10_50.InstanceName\MSSQL\DATA\LogName_log.ldf'" 
goto end 

:nofile 
echo SyncMe.bat not found on G:\ 
goto end 

:end 
+0

希望,沒有人塞在USB驅動器:) –

+0

我仍然需要測試,但我選擇了一個看起來特定於我的USB設備的事件ID,所以希望這不會成爲問題。我想我總是可以用一個批處理程序將呼叫包裝到SyncToy中,在程序運行之前檢查USB驅動器上是否存在唯一文件。 – adam0101

+0

在那裏,我更新了我的答案,包括一個批處理程序,它在同步之前檢查USB驅動器上是否存在它自己。所以不應該有插入不同的USB驅動器的危險。 – adam0101

1

你可以做的就是複製.mdf和.ldf文件,如果沒有更改任何設置,你應該能夠在這裏找到他們:

C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10.SQLEXPRESS \ MSSQL \ DATA

我不認爲你可以做到這一點,而服務器正在運行,但你可以從管理工作室分離數據庫easiliy(右鍵單擊數據庫..任務.. detach)。然後你可以複製這些文件,首先壓縮它們應該在尺寸上有很大的不同並且容易對它們進行版本化。

反過來,在管理工作室中,您可以選擇數據庫節點,然後使用richtclick .. attach數據庫重新附加它們。

This似乎是一個很好的文章。

關注Gert-Jan

1

我不認爲你可以讓SQL Server爲你做這一切。我會寫出來是用來SMO做的工作對我來說有點控制檯應用程序:

Server sqlServer = new Server(@"MYMACHINE\INSTANCENAME"); 
sqlServer.DetachDatabase("MyDatabaseName", false); 

// copy the mdf and ldf to your thumb drive 

StringCollection databaseFiles = new StringCollection(); 
databaseFiles.Add(@"C:\MyDBLoc\MyDatabase.mdf"); 
databaseFiles.Add(@"C:\MyDBLoc\MyDatabase.ldf"); 
sqlServer.AttachDatabase("MyDatabaseName", databaseFiles); 
相關問題