向临时表插入多表数据时,如何添加来源数据库名到指定列?
解决方案:插入数据时标记来源数据库名称
你可以在INSERT...SELECT语句中,直接将来源数据库名称作为固定值或通过函数动态填充到BOTName列,具体两种方式如下:
1. 硬编码指定来源数据库名
如果明确知道数据来自哪个数据库,直接在SELECT语句中指定该数据库名称作为BOTName的值:
-- 从DB1数据库的TableA插入数据,标记来源为DB1 INSERT INTO #temp1 (ID, RunDate, BOTName) SELECT ID, RunDate, 'DB1' AS BOTName FROM DB1.dbo.TableA; -- 从DB2数据库的TableB插入数据,标记来源为DB2 INSERT INTO #temp1 (ID, RunDate, BOTName) SELECT ID, RunDate, 'DB2' AS BOTName FROM DB2.dbo.TableB;
2. 动态获取当前数据库名
如果是从当前执行语句的数据库中取数,可以用DB_NAME()函数自动获取数据库名称,避免硬编码:
-- 从当前数据库的本地表取数,自动填充当前库名到BOTName INSERT INTO #temp1 (ID, RunDate, BOTName) SELECT ID, RunDate, DB_NAME() AS BOTName FROM dbo.YourLocalTable;
通过以上方式,每一行插入到#temp1的数据都会在BOTName列带上对应的来源数据库标识,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Joseph Peduto
相关产品推荐
相关产品推荐

