【发布时间】:2019-03-12 21:45:56
【问题描述】:
我运行 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] 列的表格上的日期。
有没有更好的方法来实现这个,Derived Column 函数可能吗?
【问题讨论】:
标签: sql-server tsql ssis ssms