[英]Doing an SQL Update with an Inner Join
I am trying to update a field in the user table using an inner join with another table, but it does not seem to be working. 我试图使用内部联接与另一个表更新用户表中的字段,但它似乎没有工作。 I am using the code below: 我使用下面的代码:
SqlCommand cmd = new SqlCommand("UPDATE U SET User.firstname = @Firstname FROM dbo.User AS U INNER JOIN dbo.Driver AS D ON U.userid = D.driverid WHERE D.driverid = @Driverid");
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
cmd.Parameters.Add("@Firstname", SqlDbType.VarChar, 50).Value = firstname;
cmd.Parameters.Add("@Driverid", SqlDbType.VarChar, 50).Value = driverid;
conn.Open();
cmd.ExecuteNonQuery();
SQL: SQL:
UPDATE
U
SET
User.firstname = @Firstname
FROM
dbo.User AS U
INNER JOIN dbo.Driver AS D ON
U.userid = D.driverid
WHERE
D.driverid = @Driverid
I am getting the following error: 我收到以下错误:
System.Web.Services.Protocols.SoapException: Server was unable to process request. System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'User' ---> System.Data.SqlClient.SqlException:关键字'User'附近的语法不正确
Where could I be going wrong? 我哪里可能出错? Thanks 谢谢
The table User
is defined/aliased as U
in your selecting section, so thus reference it as U
in the update fields list: 表User
在您的选择部分中被定义/别名为U
,因此在更新字段列表中将其引用为U
:
EDITED : Added square brackets around User
which seems to be a reserved SQL keyword. 编辑 :在User
周围添加了方括号,它似乎是一个保留的SQL关键字。
UPDATE
U
SET
U.firstname = @Firstname
FROM
dbo.[User] AS U
INNER JOIN dbo.Driver AS D ON
U.userid = D.driverid
WHERE
D.driverid = @Driverid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.