Я использую SSIS для хранилищ данных, в основном он проходит по всем моим базам данных и сохраняет эти данные в таблицу.Однако в некоторых таблицах отсутствует столбец [LastModified]
, и я хотел бы создать столбец для тех, которые не совпадают.
Это мой оператор выбора -
IF EXISTS(SELECT 1 FROM sys.columns
WHERE Name = N'LastModified'
AND Object_ID = Object_ID(N'dbo.Branch'))
(SELECT [ID]
,ISNULL([Name], '') AS [Name]
,ISNULL([Code], '') AS [Code]
,ISNULL([LastModified], '') AS [LastModified]
,[TimeStampField] from [dbo].[Branch])
ELSE
(SELECT [ID]
,ISNULL([Name], '') AS [Name]
,ISNULL([Code], '') AS [Code]
,getdate() AS [LastModified]
,[TimeStampField] from [dbo].[Branch])
Я получаюошибка - неверное имя столбца «LastModified».
Если я изменю ISNULL([LastModified], '') AS [LastModified]
на GetDate() AS [LastModified]
, это будет работать.Однако это изменит дату в тех таблицах, в которых есть столбец [LastModified]
.
Есть ли лучший способ реализовать это, возможно, функция «Производный столбец»?