如何在托管SQL Server/IIS环境中使用BCP ?BCP的替代品是什么?



我有一个内置ASP的web应用程序,最初托管在我自己的本地服务器上- win2008, IIS 7.0, SQL server 2008。

然后我买了一个折扣。网站+数据库的网络托管帐户

web应用程序从网站根目录下的文件夹中获取文件,并批量插入到数据库中的记录中。在本地开发盒上一切正常。

当数据库+网站被移动到DiscountASP。. Net托管帐户,批量插入将无法工作,并且折扣。Net告诉我们不允许BULK INSERT,因为托管的数据库服务器是一个共享服务器。

这种情况下的工作是什么?他们指出我们可以使用单独的insert。

有更好的解决方案吗?是否有人遇到过类似的问题,并有一些我们可以重用的解决方案?(而不是重新发明轮子)。

谢谢你帮我查找问题

你必须使用SQLBulkCopy从。net或发送XML在SQL代码解析

经过一番尝试,我自己找到了解决方案。以下是解决方案的步骤(由于客户端的机密性,我不能共享代码):

  1. 我使用脚本从ASP代码中读取Web服务器上文件的所有文本。

  2. 我将文件的整个文本作为变量传递给存储过程(SQL Server 2008)。参数的数据类型必须是"adLongVarChar"参考这里的数据类型表(如果不能识别枚举,就像我的情况一样,我使用值201而不是枚举)。

  3. 在存储过程中编写SQL代码,将字符串解析为行,然后进一步将每行解析为列值。

希望我解决方案的伪代码对大家有帮助。

最新更新