我最近使用 Microsoft SQL Server Migration Assistant for Oracle 通过两遍方法将Oracle数据库转换为SQL Server数据库。
有两个表ProxyRequests off
ProxyPreserveHost on
ProxyPass "/comms" "ws://localhost:1880/comms"
ProxyPassReverse "/comms" "ws://localhost:1880/comms"
ProxyPass "/" "http://127.0.0.1:1880/"
ProxyPassReverse "/" "http://127.0.0.1:1880/"
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
和BILL_INFO
,它们应该通过复合PK具有主 - 细节关系。但是,当我尝试创建该关系时,我收到此错误:
'BILL_INFO'表已成功保存'BILL_INFO_DETAIL'表 - 无法创建关系'FK_BILL_INFO_DETAIL_BILL_INFO'。 ALTER TABLE语句与FOREIGN KEY约束冲突 “FK_BILL_INFO_DETAIL_BILL_INFO”。冲突发生在数据库中 “MyDatabase”,表“dbo.BILL_INFO”。
数据库充斥着糟糕的数据。因此,我在详细信息表格中进行了基本搜索,以查找主要内容中可能不存在的BILL_INFO_DETAIL
,BILL_NUMBER
和PAY_MODE_ID
(逐个),并在{{上搜索时找到两条记录1}}。我修复了它们,并确认CASHIER_ID
和BILL_NUMBER
已按顺序排列。
但是,我无法建立这种关系。同样的错误。现在我想知道表之间的元组是否无效。如何找到仅存在于详细信息表中的复合键?
答案 0 :(得分:1)
您可以使用以下方法检查不存在的值:
SELECT bill_number, pay_mode_id, cashier_id
FROM Bill_Info_Detail
EXCEPT
SELECT bill_number, pay_mode_id, cashier_id
FROM Bill_Info;
-- and then fix missing data
使用复合键时,需要将所有列都检查为元组。