批量插入语句通过创建查询在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
答案 0 :(得分:0)
很简单,使用管理员用户名和密码登录您的SQL服务器。进入后,Goto Security-> Logins->右键单击您想要Bulk权限的登录用户。然后选择Properties-> Server Roles-> Check Bulk Admin as YES。它应该工作。
答案 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();
}