2010-11-11 59 views
1

當前,我想在將數據存儲到數據庫時將此作爲選項提供給用戶。從後臺線程上的文本文件填充SQL數據庫

將數據保存到文件並使用後臺線程從文本文件讀取數據到SQL服務器。

我的程序流程: - 來自服務器的數據流不斷(每秒100次)。 - 希望將數據存儲在文本文件中,並使用後臺線程將數據從文本文件複製回SQL數據庫作爲另一用戶選項。

之前已經完成了嗎?

乾杯。

+4

對不起,你的問題有點混亂。你想讓用戶將數據從SQL保存到文本文件,還是相反?你什麼意思是每秒100? 100個文件? 100行?請更好地解釋。 – 2010-11-11 14:00:26

回答

1

你的問題確實有點混亂。

我猜你的意思是:每秒來自某個源或服務器

  • 100行
  • 用戶的一個選擇是文本文件緩存(如日誌條目。):在行存儲在文本文件中,並定期將文本文件的內容增量複製到(一個)SQL Server表中。
  • 用戶的另一種選擇是直接插入:數據在進入時直接存儲在數據庫中,兩者之間沒有文本文件。

對不起,對嗎?

如果是,那麼你應該做的東西線:

  • 創建上INSERT動作觸發器表
  • 在該觸發器,檢查其用戶插入。如果用戶已禁用文本文件緩存,則可以繼續插入。否則,將數據重定向到文本文件(或緩存表)
  • 創建一個存儲過程,該過程檢查緩存表或文本文件以獲取新數據,將新數據複製到實際表中並刪除緩存的數據。
  • 創建上面每分鐘,每小時,每天存儲過程運行的SQL Server代理作業...

因爲從T-SQL來TEXTFILES界面不是很靈活,我會建議使用一個緩存表代替。爲什麼一個文本文件?

就此而言,爲什麼要在將數據插入表之前緩存數據?也許我們可以提出一個更好的解決方案,如果你解釋你的問題的上下文。

+0

是的,你的問題沒錯。 對不起,我感到困惑。 有沒有任何例子我可以做到這一點?我對SQL很感興趣,特別是觸發器。 我不介意使用緩存表,如果它更有效。 謝謝 – ove 2010-11-12 12:02:34