Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL错误4104:无法绑定多部分标识符_Sql_Sql Server - Fatal编程技术网

SQL错误4104:无法绑定多部分标识符

SQL错误4104:无法绑定多部分标识符,sql,sql-server,Sql,Sql Server,我正在开发一个项目,我必须使用一个数据库来存储来自电影院的数据。其中一个表存储一些电影数据(电影名称、持续时间演员等),它有一个图像列;我将其保留为空,以便我可以首先处理登录,然后插入ovies,但没有插入图像,现在当我尝试插入图像时,会出现此错误 无法绑定多部分标识符“Filmes.Titulo_Filme” 我用来插入图像的代码如下: insert into Filmes (Imagem) select * from OPENROWSET(BULK N'F:\RC\RC8\Projecto\

我正在开发一个项目,我必须使用一个数据库来存储来自电影院的数据。其中一个表存储一些电影数据(电影名称、持续时间演员等),它有一个图像列;我将其保留为空,以便我可以首先处理登录,然后插入ovies,但没有插入图像,现在当我尝试插入图像时,会出现此错误

无法绑定多部分标识符“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'
这是您的查询:

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'
未定义电影<代码>图像为空。所以,也许你的意思是:

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 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';
这是您的查询:

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'
未定义电影<代码>图像为空。所以,也许你的意思是:

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 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';

根据您的陈述,您已经在
胶片
表的
图像
字段以外的所有字段中插入了数据

因此,您需要更新列,而不是插入,如下所示。此外,您还需要确保在适当的位置添加括号

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'

根据您的陈述,您已经在
胶片
表的
图像
字段以外的所有字段中插入了数据

因此,您需要更新列,而不是插入,如下所示。此外,您还需要确保在适当的位置添加括号

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'

请尝试分别运行以下查询。因此,您将知道哪个查询会抛出错误。 第一个问题

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

请尝试分别运行以下查询。因此,您将知道哪个查询会抛出错误。 第一个问题

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

请指定您正在使用的数据库语言(看起来像是来自
OPENROWSET
的SQL Server),因为“SQL”是一个语言家族。请指定您正在使用的数据库语言(看起来像是来自
OPENROWSET
的SQL Server),因为“SQL”是一个语言家族。我尝试了两种方法,但都不起作用。它在Titulo_Filme和Image中都给出了一个无效的列名错误(在您的回答中,您有“imagen”,我尝试了它,但它也不起作用,并将其切换到Image、Imagem,但仍然不起作用)。更新说“字符串或二进制数据将被截断。语句已终止”。我尝试了两种方法,但都不起作用。它在Titulo_Filme和Image中都给出了一个无效的列名错误(在您的回答中,您有“imagen”,我尝试了它,但它也不起作用,并将其切换到Image、Imagem,但仍然不起作用)。更新说“字符串或二进制数据将被截断。该语句已被终止”。我尝试了这一点,但它仍然给出相同的错误:“字符串或二进制数据将被截断。该语句已被终止。”我尝试了这一点,但它仍然给出相同的错误:“字符串或二进制数据将被截断。该语句已被终止。”第一个查询返回了该电影的所有列。第二个返回所讨论图像的字节数组。它们中的任何一个在一起分离时都不会给出任何类型的错误。请验证“Imagem”列的数据类型。应该是“图像”,我现在觉得自己很笨,我应该先检查一下。但就是这样,谢谢。不-不要使用图像。这在2005年被否决了。使用varbinary(max)。感谢@smorth的建议。第一次查询返回了该电影的所有列。第二个返回所讨论图像的字节数组。它们中的任何一个在一起分离时都不会给出任何类型的错误。请验证“Imagem”列的数据类型。应该是“图像”,我现在觉得自己很笨,我应该先检查一下。但就是这样,谢谢。不-不要使用图像。这在2005年被否决了。使用varbinary(max)。谢谢@SMor的建议