我正在尝试将图像插入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
我意识到这个主题有很多答案,但没有一个对我有用。 This answer对我来说是最容易遵循的,但是当使用对象资源管理器并进入安全性>登录>右键单击我的用户不会显示"属性"要进入的菜单项。
我正在使用Sql Server Management Studio。也许我没有使用我认为我的SQL Server版本,因为没有一种为我的用户设置权限的编程方法。我想我正在使用SQL Server 2012.我的计算机上可能有几个版本的SQL Server。点击帮助>关于,它确实显示了徽标" Microsoft SQL Server 2012"在各种组件的版本信息之上(这里没有显示SQL Server的版本信息)。
编辑:也许有人请说出我在insert语句上面使用的确切代码,假设数据库名为MirrorMirror,表称为Stickers,我的用户称为Amber,我的服务器名为gonskh1ou0 .database.windows.net
答案 0 :(得分:17)
要确保您拥有使用BULK命令的正确权限,请按照以下
进行操作现在,关于您使用它的查询不太正确。
用于创建表格
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]
几点说明:
MSDN文章:here
答案 1 :(得分:1)
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [user]