J'essaie d'insérer une image dans une colonne VARBINARY (MAX). Je reçois cette erreur:
Vous n'êtes pas autorisé à utiliser l'instruction de chargement en bloc.
Voici mon code:
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
Je me rends compte qu'il y a beaucoup de réponses à ce sujet mais aucune d'entre elles n'a fonctionné pour moi. Cette réponse serait la plus facile à suivre, mais lors de l'utilisation de l'explorateur d'objets et de l'accès à la sécurité> connexions> clic droit sur mon utilisateur, un élément de menu "Propriétés" ne s'affiche pas.
J'utilise Sql Server Management Studio. Je n'utilise peut-être pas la version de SQL Server que je pense, car aucune des méthodes de programmation permettant de définir les autorisations pour mon utilisateur n'a fonctionné. Je pense utiliser SQL Server 2012. J'ai probablement quelques versions de SQL Server sur mon ordinateur. En cliquant sur Aide> À propos de, le logo "Microsoft SQL Server 2012" apparaît au-dessus des informations de version de divers composants (il n'affiche pas les informations de version de SQL Server ici).
EDIT: Quelqu'un pourrait-il indiquer le code exact que j'utiliserais au-dessus de mon instruction insert, étant donné que la base de données s'appelle MirrorMirror, que le tableau s'appelle Stickers, mon utilisateur s'appelle Amber et mon serveur s'appelle gonskh1ou0.database.windows .net.
Pour vous assurer que vous disposez des autorisations nécessaires pour utiliser les commandes BULK, suivez les instructions ci-dessous.
En ce qui concerne la requête que vous utilisez, elle n’est pas tout à fait correcte.
Pour créer la table
CREATE TABLE [dbo].[Stickers] (
[name] varchar(10)
, [category] varchar(10)
, [gender] varchar(1)
, [imageData] varchar(max)
)
Pour insérer les données de grande valeur
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]
Quelques notes:
Article MSDN pour cela: ici
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [user]