2012-07-24 36 views
0

我有3個表 -插入3個表是相互依存

1. Country (CountryName, CID (PK- AutoIncrement)) 
2. State (SID(PK- AutoIncrement), StateName, CID (FK to Country) 
3. City (CityName, CID, SID (FK to State) 

現在我需要插入只是名稱與國家或地區名稱,Statename的和CITYNAME三個表。該標識需要得到更新。

我該怎麼做?

感謝,

+1

能否請您澄清這個..當我進入狀態表中的Statename的,我怎麼知道哪些它屬於哪個國家?與City相同的情況? – 2012-07-24 09:00:03

+0

如果一次插入多個表的整個過程對您來說完全是新的,那麼如果您只使用兩個表的簡單案例,則可能會從中受益更多。當你從較簡單的問題開始,然後轉向較難的問題時,學習新事物通常會更容易。 – 2012-07-24 09:23:52

+0

謝謝Andriy,我以前曾使用過兩張桌子,現在當我在這裏使用時,它的場景不同。 – Girish 2012-07-24 09:32:38

回答

0

您可以使用存儲過程來存儲過程裏面,你可以先插入到該國表:

Insert into Country (CountryName) VALUES (@CountryName) 
DECLARE @cid as INTEGER = @@IDENTITY 

然後使用SELECT @@ IDENTITY在這樣的謝勝利插入:

Insert into State(StateName, cid) values (@StateName, @cid) 
DECLARE @SID as INTEGER = @@IDENTITY 

,並使用相同的第三插入statment:

Insert into City (CityName, CID,SID) values (@CityName,@CID,@SID) 

這是所有你所需要的

+0

謝謝,但它不會不斷增加同一國家的身份嗎? 如在印度兩次,價值增加..我想印度= 1,加拿大= 2,總是.. – Girish 2012-07-24 09:24:18

0

如果你想使用LINQ to SQL的

var country = new Dbml.Country(); 
country.Name = "countryname"; 

var state = new Dbml.State(); 
state.Country = country; 
state.Name = "stateName" 

var city = new Dbml.City(); 
city.State= state; 
city.cityName = "cityName"; 

context.SubmitChanges(); 
+0

我不知道如何使用它。你能詳細說明嗎? – Girish 2012-07-24 09:28:39

+0

您可能希望看到[這裏](http://stackoverflow.com/questions/2182577/how-to-get-started-with-linq-to-sql)Linq to SQL – 2012-07-24 09:34:10