Campo de tabla de actualización de SQL x donde el campo y es z

¿Cómo puedo insertar valores en una tabla de SQL Server, en la columna X, donde la columna Y es Z?

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

preguntado el 22 de mayo de 12 a las 17:05

¿Cómo se relacionan entre sí la tabla Ciudades y la tabla Condados? -

un poco raro eso Cities.County_Id mapas a Counties.Name pero está bien. -

Necesito dar todas las ciudades que tienen Código entre 10000 y 20000, County_Id de por ejemplo 20 -

Hrmm, ¿entonces desea insertar el nombre del condado en el County_Id de las ciudades? ¿O te refieres a la identificación del condado? -

3 Respuestas

UPDATE Cities SET County_Id = 20 WHERE Cities.Code >= 10000 AND Cities.Code < 20000

contestado el 22 de mayo de 12 a las 18:05

En primer lugar, parece que está tratando de hacer un UPDATE, ya que INSERT se utiliza para agregar un registro completamente nuevo en la tabla en lugar de actualizar uno o más registros existentes.

Realmente deberías estar usando UPDATE-JOIN en lugar de INSERT-SELECT, si entiendo su requerimiento correctamente. Este planteamiento de « El subproceso StackOverflow proporciona un buen ejemplo/explicación.

contestado el 23 de mayo de 17 a las 13:05

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
                )

contestado el 22 de mayo de 12 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.