Bonjour,

J'utilise Sql server 2008 et je souhaite insérer plusieurs fichiers dans un champ de type varbinary.

Quand j'utilise le code suivant, tout fonctionne bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
-- Variable de type image
DECLARE @img AS VARBINARY(MAX)
 
-- Chargement du document (chemin c:\)
SELECT @img = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET(
BULK 'C:\Word.docx', SINGLE_BLOB) AS x
 Insertion des documents dans la table
 Document word 2007          
INSERT INTO dbo.Documents (DocID, DocNumber, DocName, DocDescription, DocExtension, Doc)
VALUES (NEWID(), 'doc1','word','Document office word','.docx', @img);
Par compte, quand j'essaie de passer le chemin de mon fichier dans une variable comme suit, j'ai l'erreur de syntaxe suivante "Expecting STRING, or TEXT_LEX"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
-- Variable de type image
DECLARE @img AS VARBINARY(MAX)
DECLARE @path as varchar(max) = 'C:\Word.docx'
 
-- Chargement du document (chemin c:\)
SELECT @img = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET(
BULK @path, SINGLE_BLOB) AS x
 Insertion des documents dans la table
 Document word 2007          
INSERT INTO dbo.Documents (DocID, DocNumber, DocName, DocDescription, DocExtension, Doc)
VALUES (NEWID(), 'doc1','word','Document office word','.docx', @img);
Mon objectif étant de créer un curseur qui va parcourir une liste de fichiers et les insérer dans ma table sans avoir a créer de script type powershell pour générer mon sricpt sql d'insertion de mes fichiers dans ma table.

Merci d'avance