Pour vous assurer que vous disposez des autorisations nécessaires pour utiliser les commandes BULK, suivez les instructions ci-dessous
- Développez Sécurité
- Développez Connexions
- Cliquez avec le bouton droit sur votre nom d'utilisateur et choisissez propriétés (Une fenêtre de dialogue apparaît)
- Choisissez des rôles de serveur
- Sélectionnez administration en masse pour pouvoir utiliser les commandes groupées ou sysadmin pour pouvoir utiliser n'importe quelle commande dans votre base de données.
Maintenant, en ce qui concerne la requête que vous utilisez, ce n'est pas tout à fait correct.
Pour créer le tableau
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 remarques :
- Vous devez définir un nom de corrélation pour l'ensemble de lignes en masse après la clause FROM ([photo])
- Utilisez le préfixe de colonne de droite qui a été utilisé pour la corrélation de l'ensemble de lignes en masse (photo.*)
- La colonne pour l'insertion groupée doit être définie sur varchar(max)
Article MSDN pour cela :ici