Я использую Microsoft Sql Server 2008. Я использую представление (dbo.building_piclink
), чтобы получить имена фотографий (@imgName
) и вставить фотографии в таблицу из файла. Мне нужно также принять это название фотографии и добавить его в колонку под названием att_name
, но я не могу понять синтаксис на операторе вставки, чтобы добавить его в.Вставить в SQL Server с переменной
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
Я попытался
SET @insertString = 'INSERT INTO dbo._building__ATTACH (DATA, ATTNAME)
SELECT * FROM OPENROWSET(BULK N''' + @imgString + ''', SINGLE_BLOB) as tempImg,' + @imgName
, но я получаю сообщение об ошибке, как это:
Msg 208, уровень 16, состояние 1, строка 1 Invalid имя объекта 'b26382_3_775682.jpg'
Я пытался просто делать вставку на att_name
:
SET @insertString = 'INSERT INTO dbo._buildingpoint__ATTACH (ATT_NAME)' + @imgName
не повезло. Я ничего не вижу в синтаксисе.
Спасибо!
Я бы предложил немного упростить, чтобы помочь решить проблему. Выполняется ли запрос 'SELECT * FROM OPENROWSET' ..., если вы запускаете его изолированно? –