您无权使用批量加载语句...使用bulkadmin权限

时间:2014-11-10 10:25:48

标签: asp.net sql-server-2008 stored-procedures bulkinsert

批量插入语句通过创建查询在SQL Server中起作用,但是当我使用批量插入创建存储过程时,如果我从ASP.Net应用程序调用它,则它不起作用。

我有bulkadmin权限。

它给了我错误:

You do not have permission to use the bulk load statement.

我有其他存储过程,一切正常。

我的存储过程:

ALTER PROCEDURE [dbo].[stored_procedure]
    @bulkinsert NVarChar(500)

 AS
    EXEC sp_executesql @bulkinsert
RETURN

2 个答案:

答案 0 :(得分:0)

很简单,使用管理员用户名和密码登录您的SQL服务器。进入后,Goto Security-> Logins->右键单击您想要Bulk权限的登录用户。然后选择Properties-> Server Roles-> Check Bulk Admin as YES。它应该工作。 enter image description here

答案 1 :(得分:0)

我找到了一个解决方案:我创建了一个sql查询,我使用sqlcommand类从ASp.Net执行它。所以我不再使用存储过程了。

bulkinsert = "BULK INSERT table FROM " + path + @"  WITH (firstrow=" + begin + "," + "lastrow=" + last + ",FIELDTERMINATOR ='\t', ROWTERMINATOR ='ENDOFFILE' )";
                  using (SqlCommand cmd = new SqlCommand(bulkinsert, conn))
                         {
                             cmd.ExecuteNonQuery();
                         }