Ich versuche, einige PDF-Dateien in eine temporäre Tabelle zu importieren.SQL Server Masseneinfügung schlägt fehl, wenn es in einer gespeicherten Prozedur ist
Ich habe eine gespeicherte Prozedur zu diesem Zweck und ich verwende diesen Code:
SET @SqlCommand = 'INSERT INTO ZENVIOBOLETO (IDBOLETO,NomeArquivo, image_data) SELECT '+CAST(@IDBOLETO AS VARCHAR(10))+','''[email protected]+''',image_data FROM OPENROWSET(BULK N'''[email protected][email protected]+''''+',SINGLE_BLOB) AS ImageSource(image_data);';
Dieser Code, wenn ich die print @SqlCommand
verwenden, gibt diese Ausgabe:
INSERT INTO ZENVIOBOLETO (IDBOLETO,NomeArquivo, image_data)
SELECT 803, '20162744', image_data
FROM OPENROWSET(BULK N'c:\RM\Boleto.1.803.PDF', SINGLE_BLOB) AS ImageSource(image_data);
Wenn ich zu laufen versuchen Meine Stored Procedure bekomme ich jedoch einen Fehler:
You do not have permission to use the bulk load statement
Aber wenn ich das Komma benutze nd Linie in SSMS bekomme ich keinen Fehler.
Die gespeicherte Prozedur wird als der Benutzer ausgeführt wird, habe ich versucht, auch diese:
ALTER PROCEDURE [dbo].[ACERTANOMEBOLETOS](@Pasta VARCHAR(100), @CODCOLIGADA INT)
WITH EXECUTE AS 'suporte'
ich nicht bekommen, was wirklich innerhalb der gespeicherten Prozedur geschieht, bekam ich die Erlaubnis Fehler, außerhalb, ich don komm nicht. Gleicher Benutzer, gleicher Code.
Darüber hinaus ist der Benutzer ein Mitglied von Bulkadmin und verfügt über die Berechtigung "BULKOPERATION VERWALTEN".
Aus diesem Grund kann ich den Befehl direkt in SSMS ausführen.
Die Frage ist, warum bekomme ich direkt in SSMS und nicht die gespeicherte Prozedur?
Irgendwelche Einblicke für mich?
http://stackoverflow.com/questions/14604416/how-to-enable-bulk-permission-in-sql-server – McNets