Estoy intentando escribir un script de actualización de base de datos de SQL Server. Quiero probar la existencia de una columna en una tabla, luego, si no existe, agregue la columna con un valor predeterminado y finalmente actualice esa columna según el valor actual de una columna diferente en la misma tabla. Quiero que este script sea ejecutable varias veces, la primera vez que actualice la tabla y en las ejecuciones subsiguientes se ignore el script. Mi script actualmente tiene el siguiente aspecto:Columna de prueba existe, Agregar columna y Columna de actualización
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable')
BEGIN
ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0
UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL
END
SQL Server devuelve error "nombre de columna no válido 'IsDownloadable'", es decir que necesito para cometer el DDL antes de que pueda actualizar la columna. He intentado varias permutaciones, pero no estoy llegando a ninguna parte rápidamente.
Eso lo hizo, gracias. –
explicación completa, gracias – Vladimirs
Exactamente lo que estaba buscando también. Gracias por esto. –