sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo generar una instrucción Agregar columna para todas las tablas en una base de datos en SQL Server - Tutorial de SQL Server / T-SQL, parte 49

Escenario:

Está trabajando en Auto Insurance Company como desarrollador de SQL Server. Su empresa tiene una base de datos en la que tienen más de 300 Tablas. En el diseño inicial, se olvidaron de agregar columnas de auditoría como Creado por y Creado el. Quieren que genere Agregar columna Creado por y Creado el para todas las tablas en una base de datos, ¿cómo haría eso?

Solución:

Hay muchas maneras de generar las declaraciones SQL para el requisito anterior, vamos a mantenerlo simple y rápido. Usaremos Seleccionar consulta para generar declaraciones Agregar columna para todas las tablas.
Generemos los scripts de manera que tengamos que hacer cambios muy pequeños cada vez y podamos usar en cualquier momento para agregar una nueva columna. He declarado dos variables, @ColumnName y @ColumnDataType. Una vez proporcionaremos los valores para las variables. La consulta de selección verificará todas las tablas y, si la columna no existe para la tabla, generará una instrucción Agregar columna.

--Declare Variables for Column Name and Data Type
Declare @ColumnName VARCHAR(100)
Declare @ColumnDataType VARCHAR(50)

--Set the Values for Variables
SET @ColumnName='CreatedBy'
SET @ColumnDataType='VARCHAR(50)'

--Run the Query and copy results and paste in new window to run.
Select 'ALTER Table ['+Table_Schema+'].['+Table_Name+'] '
+'Add '+@ColumnName+' '+@ColumnDataType AS AddColumnQuery
 from Information_Schema.Tables T
where T.Table_Type='BASE TABLE'
And Not exists (
Select 1 from INFORMATION_SCHEMA.COLUMNS C 
WHERE C.TABLE_Name=T.Table_Name and Column_Name=@ColumnName)

Ejecute la consulta anterior y copie los resultados en la nueva ventana de consulta. Seleccione la base de datos en la que le gustaría ejecutar y ejecutar.
Cómo generar una instrucción SQL Agregar columna para todas las tablas en una base de datos - Tutorial de T-SQL


Demostración en video:Generar declaración de agregar/eliminar columna para todas las tablas en una base de datos en SQL Server