0

我已經設置了一個存儲過程,用於將單個記錄插入到表中。其原因是爲人們創建一個通用接口,以便我可以更改它指向的表結構,而無需任何人注意或將來不得不更改代碼。插入記錄到接口

用戶必須插入許多記錄時纔會出現問題。通常他們可以做一個INSERT語句,它一次插入許多記錄,但是通過這個接口,他們被迫循環遍歷每條記錄,分別插入。速度不是這裏最大的因素,可達性是。

我已經考慮過使用視圖,但我不確定這會如何工作。我只是不太熟悉,他們知道肯定。此外,來自其他服務器的查詢可能正在訪問該界面,我認爲視圖不允許您從其他服務器插入。

你會建議我做什麼?

+0

哇,我不知道。你有鏈接,我可以找到更多的信息? – 2010-08-09 16:04:35

+0

@Abe - 不知道任何特別好的資源,但如果你谷歌'可更新的意見'你應該找到很多東西。我認爲他們可以在這裏很合適 - 但我看到這被標記爲SQL Server 2000,所以也許不會!此外,我不確定在從其他服務器插入可更新視圖時是否存在任何限制。我從來沒有遇到過我自己。 – 2010-08-09 16:07:27

回答

1

您可以有2個存儲過程。一個使用SQL Server的BULK INSERT,另一個使用SQL Server的BULK INSERT插入一條記錄(你已經有了這個)。您的用戶可以根據自己的需要調用其中一個。

有關BULK INSERT http://msdn.microsoft.com/en-us/library/ms188365.aspx

+1

我不明白批量插入是如何解決問題的。你如何「傳入」記錄? – 2010-08-09 15:43:12

+0

批量插入需要一個文件。這裏是一個例子: http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file – 2010-08-09 15:50:36

+0

使用文件不會解決問題。問題不是我有大量的記錄,而是我不希望用戶在訪問界面時不得不重寫他們的程序來使用循環而不是INSERT語句 – 2010-08-09 15:53:49

0

更多信息看一看的SQLBulkCopy類。這似乎正在做你正在尋找的東西。

+0

我也想過那個,假設他使用的是.NET語言。 – 2010-08-09 15:53:17

+0

用戶可以使用他們想要的任何語言。他們沒有訪問表本身(接口的點...) – 2010-08-09 15:59:08

+0

當你說用戶是指其他程序員?你能擴展你的「接口」是什麼意思嗎? – 2010-08-09 16:03:27