SSMS
 sql >> Database >  >> Database Tools >> SSMS

Non hai l'autorizzazione per utilizzare l'errore dell'istruzione di caricamento in blocco

Per assicurarti di disporre delle autorizzazioni corrette per utilizzare i comandi BULK, segui quanto segue

  • Espandi Sicurezza
  • Espandi Accessi
  • Fai clic con il pulsante destro del mouse sul tuo nome utente e scegli proprietà (Appare una finestra di dialogo)
  • Scegli Ruoli del server
  • Seleziona amministratore collettivo per poter utilizzare comandi in blocco o sysadmin per poter utilizzare qualsiasi comando nel tuo database.

Ora, per quanto riguarda la query che stai utilizzando, non è del tutto corretta.

Per creare la tabella

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

Per inserire i dati di grande valore

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]

Un paio di note:

  • Devi impostare un nome di correlazione per il set di righe in blocco dopo la clausola FROM ([foto])
  • Utilizza il prefisso della colonna di destra che è stato utilizzato per la correlazione del set di righe in blocco (foto.*)
  • La colonna per l'inserimento collettivo deve essere impostata come varchar(max)

Articolo MSDN per questo:qui