SQL Server:从联接的表中更新多个记录

戴维·波拉德

我在测试环境中使用SQL Server 2008 R2 Express,并在生产环境中使用完整版本。我写了一条选择语句,该语句查找我要更新的所有记录。其中约有1200个。它联接多个表,并且选择基于多个字段。

我想做的就是将其变成一条update语句,其中所有匹配记录的文件更新都相同,即dFinalized设置为'2015-01-14 00:00:00.000'

运行更新查询时收到以下错误

子查询返回了1个以上的值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

我希望我将不得不以某种方式嵌套此嵌套,但是我找不到足够简单的示例可以遵循。

预先感谢大卫

select语句非常简单

SELECT lMeetingRegisterID
      ,sPlanNumber
      ,sName
      ,sDescription
      ,dMeeting
      ,sMeetingTime
      ,bManaged

  FROM [Strata].[dbo].[MeetingRegister]
  inner Join MeetingType on MeetingRegister.lMeetingTypeID = meetingtype.lMeetingTypeID
  inner Join OwnersCorporation on MeetingRegister.lOwnersCorporationID = OwnersCorporation.lOwnersCorporationID
  inner Join tbluser on OwnersCorporation.lUserID = tblUser.lUserID

  WHERE dFinalised = '1900-01-01 00:00:00.000'
  AND dMeeting < '2014-07-01 00:00:00.000' 
  AND bManaged != 'N'

这是我对更新查询的尝试。

Update dbo.MeetingRegister
set dFinalised = '2015-01-14 00:00:00.000'
from dbo.MeetingRegister
  inner Join MeetingType on MeetingRegister.lMeetingTypeID = meetingtype.lMeetingTypeID
  inner Join OwnersCorporation on MeetingRegister.lOwnersCorporationID = OwnersCorporation.lOwnersCorporationID
  inner Join tbluser on OwnersCorporation.lUserID = tblUser.lUserID
Where dFinalised = '1900-01-01 00:00:00.000'
  AND dMeeting < '2014-07-01 00:00:00.000' 
  AND bManaged = 'N'                
sqluser

尝试表表达式

WITH C AS (
SELECT lMeetingRegisterID
      ,sPlanNumber
      ,sName
      ,sDescription
      ,dMeeting
      ,sMeetingTime
      ,bManaged
      ,dFinalised

  FROM [Strata].[dbo].[MeetingRegister]
  inner Join MeetingType on MeetingRegister.lMeetingTypeID = meetingtype.lMeetingTypeID
  inner Join OwnersCorporation on MeetingRegister.lOwnersCorporationID =    OwnersCorporation.lOwnersCorporationID
  inner Join tbluser on OwnersCorporation.lUserID = tblUser.lUserID

  WHERE dFinalised = '1900-01-01 00:00:00.000'
  AND dMeeting < '2014-07-01 00:00:00.000' 
  AND bManaged != 'N'
)
Update C
set dFinalised = '2015-01-14 00:00:00.000'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server:从联接的表中更新多个记录

来自分类Dev

通过使用引用表SQL Server更新表中的多个记录

来自分类Dev

更新 SQL Server 中的多个表

来自分类Dev

在SQL Server中联接多个表

来自分类Dev

SQL Server跨多个表联接

来自分类Dev

从SQL Server的多个表中删除许多记录的最佳实践

来自分类Dev

SQL Server 2008如何从多个表中获取最高记录

来自分类Dev

从SQL Server的多个表中删除许多记录的最佳实践

来自分类Dev

更新表SQL Server中的前1条记录

来自分类Dev

SQL联接多个表

来自分类Dev

在SQL中联接多个表后如何计数记录

来自分类Dev

通过SQL中的联接更新表

来自分类Dev

SQL Server中多个列上的内部联接

来自分类Dev

SQL Server中的条件表联接

来自分类Dev

自联接SQL Server 2008中的表

来自分类Dev

在SQL Server中创建联接表

来自分类Dev

SQL Server:基于记录相关值的表联接

来自分类Dev

使用左联接的结果更新sql表(sql server)

来自分类Dev

使用左联接的结果更新sql表(sql server)

来自分类Dev

SQL Server 2012:如何从多个表联接中获取计数组

来自分类Dev

在SQL Server 2008中联接多个表会导致错误

来自分类Dev

如何在SQL Server 2012中使用多个表进行外部交换联接?

来自分类Dev

如何在SQL Server 2008中将行更改为列(多个表,联接等)

来自分类Dev

SQL Server中的多个更新

来自分类Dev

更新除SQL Server表中重复记录之外的所有记录

来自分类Dev

更新SQL Server表中除重复记录之一以外的所有记录

来自分类Dev

在SQL中更新多个记录-语法

来自分类Dev

如何从SQL表中删除多个记录

来自分类Dev

在SQL Server的多个表上进行外部联接

Related 相关文章

热门标签

归档