您没有权限使用批量加载语句错误

2024-05-01

我正在尝试将图像插入到 VARBINARY(MAX) 列中。我收到此错误:

您无权使用批量加载语句。

这是我的代码:

INSERT INTO Stickers (Name, Category, Gender, ImageData)
       SELECT   
           'Red Dress',
           'Dress',
           'F',
           BulkColumn FROM OPENROWSET(Bulk '\\Mac\Home\Documents\MMImages\reddress.png', 
                                      SINGLE_BLOB) AS BLOB

我意识到关于这个主题有很多答案,但没有一个对我有用。这个答案 https://stackoverflow.com/a/13002720/3935156对我来说这将是最容易遵循的一个,但是当使用对象资源管理器并进入安全性>登录>右键单击我的用户时,不会显示要进入的“属性”菜单项。

我正在使用 Sql Server Management Studio。也许我没有使用我认为的 SQL Server 版本,因为为我的用户设置权限的编程方法都不起作用。我想我正在使用 SQL Server 2012。我的计算机上可能有几个版本的 SQL Server。单击“帮助”>“关于”,它会在各个组件的版本信息上方显示“Microsoft SQL Server 2012”徽标(此处不显示 SQL Server 的版本信息)。

编辑:也许有人可以说明我将在插入语句上方使用的确切代码,假设数据库称为 MirrorMirror,表称为 Stickers,我的用户称为 Amber,我的服务器称为 gonskh1ou0.database.windows.net 。


为了确保您拥有使用 BULK 命令的正确权限,请执行以下操作

  • Expand Security
  • Expand Logins
  • 右键单击您的用户名并选择特性(出现一个对话框窗口)
  • Choose 服务器角色
  • Select 批量管理能够使用批量命令或sysadmin能够对数据库使用任何命令。

现在,关于您正在使用的查询,它不太正确。

用于创建表

CREATE TABLE [dbo].[Stickers] (
        [name] varchar(10)
        , [category] varchar(10)
        , [gender] varchar(1)
        , [imageData] varchar(max)
)

用于插入大值数据

INSERT INTO  [dbo].[Stickers] ([name], [category], [gender], [imageData])
SELECT 'Red dress'
        , 'Dress'
        , 'F'
        , photo.*
FROM OPENROWSET(BULK 'C:\Users\username\Desktop\misc-flower-png-55d7744aca416.png', SINGLE_BLOB) [photo]

一些注意事项:

  • 您需要在 FROM 子句之后为批量行集设置关联名称([照片])
  • 使用已用于批量行集关联的正确列前缀(照片。*)
  • 批量插入的列需要设置为varchar(最大)

MSDN 文章对此进行了介绍:here https://msdn.microsoft.com/en-us/library/a1904w6t(VS.80).aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您没有权限使用批量加载语句错误 的相关文章

随机推荐