J'utilise Microsoft Sql Server 2008. J'utilise une vue (dbo.building_piclink
) pour obtenir des noms de photo (@imgName
) et insérer les photos dans une table à partir d'un fichier. Je dois prendre aussi ce nom photo et l'ajouter dans une colonne appelée att_name
mais je ne peux pas comprendre la syntaxe de l'instruction d'insertion pour l'ajouter dans.Insérer dans SQL Server avec la variable
DECLARE @imgString varchar(800)
DECLARE @insertString varchar(3000)
DECLARE @imgNumber int
Declare @imgName varchar(100)
SET @imgNumber = 1
WHILE @imgNumber <> 10
BEGIN
SELECT @imgName = Lower(items) FROM dbo.building_piclink
SET @imgString = 'C:\Documents and Settings\Administrator\Desktop\photos\' + @imgName
SET @insertString = 'INSERT INTO dbo._building__ATTACH (DATA)
SELECT * FROM OPENROWSET(BULK N''' + @imgString + ''', SINGLE_BLOB) as tempImg'
Print @insertString
SET @imgNumber = @imgNumber + 1
EXEC(@insertString)
END
GO
J'ai essayé
SET @insertString = 'INSERT INTO dbo._building__ATTACH (DATA, ATTNAME)
SELECT * FROM OPENROWSET(BULK N''' + @imgString + ''', SINGLE_BLOB) as tempImg,' + @imgName
mais je reçois une erreur comme ceci:
Msg 208, niveau 16, état 1, ligne 1 nom d'objet incorrect 'de b26382_3_775682.jpg'
J'ai essayé juste faire l'insert sur la att_name
:
SET @insertString = 'INSERT INTO dbo._buildingpoint__ATTACH (ATT_NAME)' + @imgName
sans chance. Il me manque quelque chose dans la syntaxe.
Merci!
Je suggère de simplifier légèrement pour aider à isoler le problème. Est-ce que la requête 'SELECT * FROM OPENROWSET' ... fonctionne si vous l'exécutez de manière isolée? –