我有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