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