gpt4 book ai didi

sql-server-2008 - 用变量插入SQL Server

转载 作者:行者123 更新时间:2023-12-02 04:04:13 25 4
gpt4 key购买 nike

我正在使用Microsoft Sql Server2008。我正在使用 View (dbo.building_piclink)获取照片名称(@imgName)并将照片从文件插入表中。我还需要使用此照片名称,并将其添加到名为att_name的列中,但我无法弄清楚将其添加到insert语句中的语法。

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

但我收到这样的错误:

消息208,级别16,状态1,行1无效的对象名称
'b26382_3_775682.jpg'

我试过只是在 att_name上插入:
SET @insertString = 'INSERT INTO dbo._buildingpoint__ATTACH (ATT_NAME)' + @imgName

没有运气。我在语法中缺少某些内容。

谢谢!

最佳答案

好吧,是的,您的插入字符串不正确-现在,您得到的内容如下:

INSERT INTO dbo._building__ATTACH (DATA, ATTNAME)
SELECT *
FROM OPENROWSET(BULK N'b26382_3_775682.jpg', SINGLE_BLOB) as tempImg, b26382_3_775682.jpg

而如果您想将文件名作为字符串插入,则需要将其放在单引号中(而且我还将颠倒 INSERT中列的顺序):
INSERT INTO dbo._building__ATTACH (ATTNAME, DATA)
SELECT
'b26382_3_775682.jpg', tempImg.*
FROM
OPENROWSET(BULK N'b26382_3_775682.jpg', SINGLE_BLOB) as tempImg

另外,正如《所有行业》杂志的乔恩所建议的那样:您是否可以尝试单独运行此 INSERT语句,只是看看该语句本身是否正常工作?一旦可行,将其集成到您存储的proc中,并将其转换为动态SQL语句...

更新:是-正如我在回答中所说(从此处开始几行):您需要将要插入 attName的文件名放在单引号中-最新的注释仍然不起作用... 。

尝试这个:
SET @insertString = 
'INSERT INTO dbo._building__ATTACH (ATTNAME, DATA) ' +
'SELECT ''' + @imgName + ''', tempImg.* ' +
'FROM OPENROWSET(BULK N''' + @imgString + ''', SINGLE_BLOB) as tempImg'

这样行吗?

关于sql-server-2008 - 用变量插入SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8511049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com