我有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三個表。該標識需要得到更新。
我該怎麼做?
感謝,
我有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三個表。該標識需要得到更新。
我該怎麼做?
感謝,
您可以使用存儲過程來存儲過程裏面,你可以先插入到該國表:
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)
這是所有你所需要的
謝謝,但它不會不斷增加同一國家的身份嗎? 如在印度兩次,價值增加..我想印度= 1,加拿大= 2,總是.. – Girish 2012-07-24 09:24:18
如果你想使用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();
我不知道如何使用它。你能詳細說明嗎? – Girish 2012-07-24 09:28:39
您可能希望看到[這裏](http://stackoverflow.com/questions/2182577/how-to-get-started-with-linq-to-sql)Linq to SQL – 2012-07-24 09:34:10
能否請您澄清這個..當我進入狀態表中的Statename的,我怎麼知道哪些它屬於哪個國家?與City相同的情況? – 2012-07-24 09:00:03
如果一次插入多個表的整個過程對您來說完全是新的,那麼如果您只使用兩個表的簡單案例,則可能會從中受益更多。當你從較簡單的問題開始,然後轉向較難的問題時,學習新事物通常會更容易。 – 2012-07-24 09:23:52
謝謝Andriy,我以前曾使用過兩張桌子,現在當我在這裏使用時,它的場景不同。 – Girish 2012-07-24 09:32:38