Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在托管SQL Server/IIS环境中使用BCP?什么是BCP的替代方案_Sql Server_Shared Hosting_Bulkinsert_Bcp_File Import - Fatal编程技术网

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

Sql server 如何在托管SQL Server/IIS环境中使用BCP?什么是BCP的替代方案,sql-server,shared-hosting,bulkinsert,bcp,file-import,Sql Server,Shared Hosting,Bulkinsert,Bcp,File Import,我有一个内置于ASP的web应用程序,最初托管在我自己的本地服务器上—Win 2008、IIS 7.0、SQL server 2008 然后我为网站+数据库购买了一个discountASP.Net托管帐户 web应用程序从网站根目录下的文件夹中获取一个文件,并将其批量插入数据库中的记录中。在当地的开发箱中,一切都很顺利 当database+网站被移动到DiscountASP.Net托管帐户时,批量插入将不起作用,DiscountASP.Net告诉我们,由于托管数据库服务器是共享服务器,因此不允许

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

然后我为网站+数据库购买了一个discountASP.Net托管帐户

web应用程序从网站根目录下的文件夹中获取一个文件,并将其批量插入数据库中的记录中。在当地的开发箱中,一切都很顺利

当database+网站被移动到DiscountASP.Net托管帐户时,批量插入将不起作用,DiscountASP.Net告诉我们,由于托管数据库服务器是共享服务器,因此不允许批量插入

此场景的解决方案是什么?他们表示我们可以使用单独的插入

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


感谢您查找我的问题。

您必须使用.net中的SQLBulkCopy或发送XML以在SQL代码中进行解析。

经过一些尝试,我自己能够找到一个解决方案。以下是解决方案步骤(由于客户保密,我无法共享代码):

  • 我使用Scripting.FileSystemObject服务器对象从ASP代码中读取Web服务器上文件的所有文本

  • 我将文件的整个文本作为变量传递给存储过程(SQLServer2008)。参数的数据类型必须是“adLongVarChar”(如果无法识别枚举,就像我的情况一样,我使用值201而不是枚举)

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


  • 希望我的解决方案的伪代码能对其他人有所帮助。

    我得到的源文件是一个平面文件,带有列和行分隔符,web代码是经典的ASP。另一方面,DiscountASP.Net允许在SQL Server中使用.Net代码。有什么想法吗?@Moiz Tankiwala:除非您可以调用web服务或类似的服务,否则您在访问SQL Server之外的资源时也会遇到类似的问题。但我希望CLR允许的限制,否则您可能会干扰其他客户端数据库