SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Vous n'êtes pas autorisé à utiliser l'erreur d'instruction de chargement en bloc

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