SQL错误4104:不能绑定多部分标识符

时间:2019-01-26 19:19:30

标签: sql sql-server

我正在开发一个项目,其中必须使用数据库来存储电影院的数据。其中一个表存储一些电影数据(电影名称,时长演员等),并且具有图像列;我将其保留为空,这样我可以先进行登录,然后再插入卵子,但没有插入图像,现在当我尝试插入图像时,会出现此错误。

  

无法绑定多部分标识符“ 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'

3 个答案:

答案 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