Dado el siguiente código SQL:problemas para actualizar nueva columna después de añadirlo
IF EXISTS (SELECT * FROM sys.columns WHERE name = 'NewFieldName' AND object_id = OBJECT_ID('dbo.MyTableName'))
RETURN
-- Add NewFieldName column to part of the Summer 2012 release cycle.
ALTER TABLE dbo.[MyTableName] ADD
[NewFieldName] SmallINT NOT NULL
CONSTRAINT DF_MyTableName_NewFieldName DEFAULT (2)
UPDATE [MyTableName] SET NewFieldName = 1 WHERE [Name] = 'FindMe' --Update one specific value
produce el siguiente mensaje de error:
Msg 207, nivel 16, estado 1, línea 10 Nombre de columna no válido ' NewFieldName '.
Estoy seguro de que me falta algo básico, pero intentar poner "IR" después del alter hace que la ACTUALIZACIÓN se ejecute cada vez y no quiero hacer eso.
¿Cómo puedo estructurar esta declaración para que compruebe si la columna existe y, si no la agrega, y luego establecer los valores como se indica en mis instrucciones UPDATE?
primera declaración de actualización es redundante, establece todos los registros en 2 por 'valor predeterminado (2)' –
Las declaraciones anteriores funcionó para mí. ¿Cómo los estás ejecutando? ¿Se ha creado la columna 'NewFieldName'? –
@AmirIsmail mal. Cuando ejecuto la instrucción ALTER, se crea un campo, pero el predeterminado no está establecido para los registros existentes. Tal vez haya una manera diferente de escribir ALTER para hacer eso; pero la estructura actual no establece los valores predeterminados para las filas existentes. – ray