我正在开发一个项目,其中必须使用数据库来存储电影院的数据。其中一个表存储一些电影数据(电影名称,时长演员等),并且具有图像列;我将其保留为空,这样我可以先进行登录,然后再插入卵子,但没有插入图像,现在当我尝试插入图像时,会出现此错误。
无法绑定多部分标识符“ Filmes.Titulo_Filme”。
我用来插入图像的代码是这样的:
insert into Filmes (Imagem) select * from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image where Filmes.Titulo_Filme = 'Bohemian Rhapsody'
非常感谢您的帮助。
编辑:由于我已经填满了所有其他列,但仍无法正常工作,所以我尝试更新该列,但是现在却出现了另一个错误。
字符串或二进制数据将被截断。
该语句已终止。
更新代码:
update Filmes set Imagem = (select * from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image) where Filmes.Titulo_Filme = 'Bohemian Rhapsody'
答案 0 :(得分:2)
这是您的查询:
insert into Filmes (Imagem)
select *
from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image
where Filmes.Titulo_Filme = 'Bohemian Rhapsody'
Filmes
未定义。 image
是。所以也许你的意思是:
insert into Filmes (Imagem)
select imagen
from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as image
where image.Titulo_Filme = 'Bohemian Rhapsody';
或者您真的想要update
:
update filmes
set imagem = i.image
from OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg', SINGLE_BLOB) as i(image)
where filmes.Titulo_Filme = 'Bohemian Rhapsody';
答案 1 :(得分:1)
根据您的陈述,您已经在image
表的Filmes
字段以外的所有字段中插入了数据。
因此,无需插入即可更新列,如下所示。另外,您需要确保在适当的位置添加了括号。
UPDATE Filmes
SET Imagem =
(SELECT BulkColumn FROM OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg' , SINGLE_BLOB) AS x)
WHERE Filmes.Titulo_Filme = 'Bohemian Rhapsody'
答案 2 :(得分:1)
请尝试单独运行以下查询。这样您就会知道哪个查询引发错误。 第一查询
SELECT * FROM Filmes WHERE Filmes.Titulo_Filme = 'Bohemian Rhapsody'
第二查询
SELECT BulkColumn FROM OPENROWSET(BULK N'F:\RC\RC8\Projecto\ShikiHD_ASP\ShikiHD_ASP\Images\bohemianrhapsody.jpeg' , SINGLE_BLOB) AS x