【问题标题】:SQL Update table field x where field y is zSQL 更新表字段 x 其中字段 y 是 z
【发布时间】:2012-05-22 16:44:19
【问题描述】:

如何将值插入 SQL Server 表中的 X 列,其中 Y 列是 Z?

INSERT INTO dbo.Cities (County_Id) 
WHERE Code >= 10000 AND Code < 20000
VALUE 20

【问题讨论】:

  • Cities 表和 Counties 表如何相互关联?
  • Cities.County_Id 映射到 Counties.Name 有点奇怪,但没关系。
  • 我需要提供代码在 10000 到 20000 之间的所有城市,County_Id 例如为 20
  • 嗯,所以您想将县中的名称插入城市的 County_Id 中?还是您的意思是县的 ID?

标签: sql sql-server sql-server-2008 insert


【解决方案1】:
UPDATE Cities SET County_Id = 20 WHERE Cities.Code >= 10000 AND Cities.Code < 20000

【讨论】:

    【解决方案2】:

    首先,听起来您正在尝试执行UPDATE,因为INSERT 用于在表中添加一条全新的记录,而不是更新一个或多个现有记录。

    如果我正确理解您的要求,您真的应该使用UPDATE-JOIN 而不是INSERT-SELECTThis StackOverflow 线程提供了一个很好的例子/解释。

    【讨论】:

      【解决方案3】:
      Insert dbo.Cities( County_Id )
      Select Name
      From dbo.Counties
      Where Counties.Id = 20
          And Exists  (
                      Select 1
                      From dbo.Cities As C1
                      Where C1.County_Id = Counties.Name
                          And C1.Code >= 10000
                          And C1.Code < 20000
                      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-29
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多