Вы можете извлечь тип данных столбца из базы данных, запросив системные представления, как показано ниже:
SELECT c.*, s.name
FROM sys.columns c
INNER JOIN sys.objects o
ON c.object_id = o.object_id
INNER JOIN sys.types s
ON c.user_type_id = s.user_type_id
WHERE o.name = 'B'
AND c.name = 'ColumnName'
Вам нужно будет подключиться к базе данныхB, заменить o.name = 'B'
именем таблицы и заменить c.Name = 'ColumnName'
именем столбца.
Получив тип данных, вам нужно будет создать оператор DDL, чтобы добавить столбец в таблицу в базе данных A, что-то вроде следующего:
ALTER TABLE dbo.MyTableName ADD MyColumnName DATA_TYPE_HERE
После обновления таблицы вы можете создать и выполнить оператор вставки:
INSERT INTO DatabaseA.dbo.MyTableName (column list)
SELECT (column list)
FROM DatabaseB.dbo.MyTableName
Обратите внимание, что в приведенном выше примере предполагается, что обе базы данных расположены в одном и том же экземпляре SQL Server, и обе они находятся в схеме dbo.
Если это то, что вы планируете использовать в будущем, вам следует добавить несколько шагов защитного программирования, чтобы убедиться, что вы добавляете столбец только в том случае, если столбец еще не существует в таблице.