在SQL Server多个表我想要做插入到多个表,即Customer, Account, AccountTransactions
插入通过XML
编辑
Entity - Customer
一对一的Customer - Account
被映射为一比一Account - AccountTransactions
被映射为一对多
Entity(EntityId, EntityType)
ENTITYID主键自动递增
Customer(CustomerId, FName, LName)
客户ID = ENTITYID主键
Account(AccountId, AccountNo, CustomerId)
ACCOUNTID PK,客户ID FK
AccountTransactions(TransactionId, PaymentDate, CurrentBalance, AccountId)
TRANSACTIONID PK,ACCOUNTID FK
我的XML是:
<CustomerList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<Customer>
<CustomerId/>
<CustomerName>Abhishek</CustomerName>
<AccountId/>
<AccountNumber>eba5d378-b</AccountNumber>
<Transactions>
<Transaction>
<TransactionId/>
<PaymentDate>2/2/2012</PaymentDate>
<Amount>500</Amount>
</Transaction>
<Transaction>
<TransactionId/>
<PaymentDate>2/2/2012</PaymentDate>
<Amount>500</Amount>
</Transaction>
</Transactions>
</Customer>
<Customer>
<CustomerId/>
<CustomerName>Yash</CustomerName>
<AccountId/>
<AccountNumber>A101202</AccountNumber>
<Transactions>
<Transaction>
<TransactionId/>
<PaymentDate>2/2/2012</PaymentDate>
<Amount>500</Amount>
</Transaction>
<Transaction>
<TransactionId/>
<PaymentDate>2/2/2012</PaymentDate>
<Amount>500</Amount>
</Transaction>
</Transactions>
</Customer>
</CustomerList>
我要插入Customer, Account, Transaction
表在XML和在插入到客户每个客户的ID应该被保存回XML并在Account
表用作外键
我可以看到唯一的办法就是使用嵌套游标或嵌套的while循环。有没有更好的方法存在?
我知道这可能如果我有任何业务已经完成首要的关键。我的实际数据库设计有点复制了AdventureWorks2008R2'BusinessEntity(BusinessEntityId,BusinessEntityType)'表,其中BusinessEntityId是在第一个位置生成的,然后插入到Person表中以创建一个Person。此后其余的实体流动。任何想法如何解决这个问题? –