Sql 如何更新表中的值

Sql 如何更新表中的值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有下面的select语句。 我想将ContactAssociate的值从'Bob'更新为'Jane'。有可能这样做吗 SELECT TOP (1500) ContactID, ContactNotes, ContactAssociate, ContactAppointment FROM tb_Contact WHERE (ContactAssociate = 'Bob') AND (ContactAppointment = 0) 有关更新的常规教程,请参见 有关MSS

我有下面的select语句。 我想将ContactAssociate的值从'Bob'更新为'Jane'。有可能这样做吗

SELECT TOP (1500) ContactID, ContactNotes, 
  ContactAssociate, ContactAppointment
FROM  
  tb_Contact
WHERE 
 (ContactAssociate = 'Bob') AND 
 (ContactAppointment = 0)
  • 有关更新的常规教程,请参见
  • 有关MSSQL的具体参考,请参阅
  • 有关更新的常规教程,请参见
  • 有关MSSQL的具体参考,请参阅
使用:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
您为
contactappointment
提供的查询已检查为零-如果您希望包括该检查,则查询将为:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
   AND contactappointment = 0
UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactid IN (SELECT TOP (1500)
                            contactid 
                       FROM TB_CONTACT
                      WHERE contactassociate = 'Bob'
                        AND contactappointment = 0)
UPDATE
语句不支持
TOP
关键字,因此您的UPDATE语句将是:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
   AND contactappointment = 0
UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactid IN (SELECT TOP (1500)
                            contactid 
                       FROM TB_CONTACT
                      WHERE contactassociate = 'Bob'
                        AND contactappointment = 0)
…但这将提供随机联系人-您应该在子查询中指定一个
ORDER BY
子句以获得一致的结果

参考:

使用:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
您为
contactappointment
提供的查询已检查为零-如果您希望包括该检查,则查询将为:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
   AND contactappointment = 0
UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactid IN (SELECT TOP (1500)
                            contactid 
                       FROM TB_CONTACT
                      WHERE contactassociate = 'Bob'
                        AND contactappointment = 0)
UPDATE
语句不支持
TOP
关键字,因此您的UPDATE语句将是:

UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactassociate = 'Bob'
   AND contactappointment = 0
UPDATE TB_CONTACT
   SET contactassociate = 'Jane'
 WHERE contactid IN (SELECT TOP (1500)
                            contactid 
                       FROM TB_CONTACT
                      WHERE contactassociate = 'Bob'
                        AND contactappointment = 0)
…但这将提供随机联系人-您应该在子查询中指定一个
ORDER BY
子句以获得一致的结果

参考:


谢谢,这将更新表中的所有记录。我只想更新ContactAppointment列为0的1500。@Am:最好链接到供应商文档-供应商不可知论者可能会错过详细信息。@Am:如果在返回主键的子查询中已经检查了关联名称,则检查关联名称是多余的。同意,但如果OP是新的,则会显示“light”教程可能更友好。@Ponies:tnx,已修复。我想知道查询编译器是否已经修复了它。谢谢,这将更新表中的所有记录。我只想更新ContactAppointment列为0的1500。@Am:最好链接到供应商文档-供应商不可知论者可能会错过详细信息。@Am:如果在返回主键的子查询中已经检查了关联名称,则检查关联名称是多余的。同意,但如果OP是新的,则会显示“light”教程可能更友好。@Ponies:tnx,已修复。我想知道查询编译器是否已经修复了它。谢谢,正如我所说的-这将更新表中的所有记录。我只想更新1500,其中ContactAppointment列=0。谢谢,正如我所说的-这将更新表中的所有记录。我只想更新联系人约会列=0的1500。