SQL Server中从迁移表插入主表后,同步插入关联链接表的字段问题求助
SQL Server中从迁移表插入主表后,同步插入关联链接表的字段问题求助
我现在碰到个SQL Server数据迁移的小难题,想请大家帮忙看看。情况是这样的:我们把外部数据源的数据导入到了SQL Server的扁平表MigratedCustomer里,现在要把这些数据同步到生产环境的正式架构中——正式结构里有Customer主表,还有个关联表CustomersType,这个表需要用Customer插入后生成的主键ID,加上MigratedCustomer里的InputCustomerTypeID来关联。
我写的代码在把CustomerTypeID硬编码成3的时候是能正常运行的,但现在要把这个硬编码的值换成MigratedCustomer里对应的InputCustomerTypeID,试了好几种写法都不对,麻烦大家帮我调整一下。
先放目前能正常运行的代码(其中3是硬编码的,需要替换成动态的InputCustomerTypeID):
USE OtherCustomersDB GO CREATE TABLE #RowInserted (ID INT, CustomerTypeID INT); Insert INTO dbo.Customer (CustomerTitle, CustomerForename, CustomerSurname, CustomerAddesss) OUTPUT INSERTED.Id INTO #RowInserted(ID) SELECT InputTitle, InputForename, InputSurname, InputAddress FROM dbo.MigratedCustomer WHERE CustomerNumber = '215478'; INSERT INTO #RowInserted (CustomerTypeID) SELECT InputCustomerTypeID FROM dbo.MigratedCustomer WHERE CustomerNumber = '215478'; INSERT INTO dbo.[CustomersType] (CustomerId, CustomerTypeID) VALUES ((SELECT ID from #RowInserted), 3);
这段代码的问题在于,我需要把最后一行里的硬编码值3替换成MigratedCustomer里的InputCustomerTypeID,但试了下面两种写法都报错:
第一种尝试:
INSERT INTO dbo.[CustomersType] (CustomerId, CustomerTypeID) VALUES ((SELECT ID from #RowInserted),
第二种尝试:
(SELECT CustomerTypeID FROM dbo.MigratedCustomer)); INSERT INTO dbo.[CustomersType] (CustomerId, CustomerTypeID) VALUES ((SELECT ID, CustomerTypeID from #RowInserted));
麻烦大家帮我看看,怎么才能正确把刚生成的CustomerID和对应的InputCustomerTypeID一起插入到CustomersType表中呀?
备注:内容来源于stack exchange,提问作者MH2486
相关产品推荐
相关产品推荐

