Skip to content

Instantly share code, notes, and snippets.

@osya
Last active August 29, 2015 14:15
Show Gist options
  • Save osya/58f5de08171944094d86 to your computer and use it in GitHub Desktop.
Save osya/58f5de08171944094d86 to your computer and use it in GitHub Desktop.
Adding in a table only missed columns. Добавить в таблицу только отсутствующие колонки #SQL
DECLARE @adding_cols NVARCHAR(MAX) = '', @sql NVARCHAR(MAX) = ''
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'City')
SET @adding_cols = @adding_cols + 'City NVARCHAR(255), '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'SUBJECT')
SET @adding_cols = @adding_cols + 'SUBJECT NVARCHAR(128), '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'REGION')
SET @adding_cols = @adding_cols + 'REGION NVARCHAR(255), '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'AREA_OBJECT_7')
SET @adding_cols = @adding_cols + 'AREA_OBJECT_7 FLOAT, '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'DEVELOPER_ADRESS')
SET @adding_cols = @adding_cols + 'DEVELOPER_ADRESS NVARCHAR(255), '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'OKOPF')
SET @adding_cols = @adding_cols + 'OKOPF NVARCHAR(255), '
IF NOT EXISTS (SELECT *
FROM [DWH].INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SAT_Unfinished_Building_Subjects'
AND table_schema = 'frm' AND column_name = 'QUANTITY_OBJECT_7')
SET @adding_cols = @adding_cols + 'QUANTITY_OBJECT_7 FLOAT, '
IF @adding_cols <> ''
BEGIN
SET @sql = 'ALTER TABLE [DWH].[frm].[SAT_Unfinished_Building_Subjects] ADD ' + LEFT(@adding_cols, LEN(@adding_cols) - 1)
EXEC(@sql)
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment