我在sql server 2008
中创建了两个表如图
所示我在产品表中添加了一些数据
insert into tblproduct values ("I PHONE");
insert into tblproduct values ("SAMSUNG");
insert into tblproduct values ("SONY");
...etc
现在我的问题是如何编写用于在tblOrder中插入数据的sql语句 这样Pid就会自动填入tblOrder。
答案 0 :(得分:1)
好吧,回答你的问题sql数据是由sql语言操纵的。但是sql server只是一种保存结构化数据的方法。
因此,当您构建应用程序,并列出可订购的产品时,您就会知道产品的ID。然后你可以做类似的事情:
INSERT INTO tblOrder(OName, Pid)
VALUES ('name_choosen', [product_id_selected])
在您的情况下,对于SQL培训,您可以:
INSERT INTO tblOrder(OName, Pid)
SELECT 'name_of_order', Pid
FROM tblProduct
WHERE PName='IPhone'
或者
INSERT INTO tblOrder(OName, Pid)
SELECT 'name_of_order'
, (SELECT Pid from tblProduct WHERE PName='IPhone')
或
INSERT INTO tblOrder(OName, Pid)
VALUES ('name_of_order'
, (SELECT Pid from tblProduct WHERE PName='IPhone'))
答案 1 :(得分:0)
希望这有帮助
http://www.codeproject.com/Articles/620086/CASCADE-in-SQL-Server-with-example
快乐的编码。
尝试使用INSERT ON CASCADE。
答案 2 :(得分:0)
INSERT INTO tblOrder(OName, Pid)
SELECT 'nameOfOrder',Pid
FROM tblProduct
WHERE PName='IPhone'.
您需要从products表中提取PID,而不是直接在Orders表中插入PID。 这将确保产品表中存在订单表中的所有pid。
此外,您无法记住所有产品的Pid,但可以通过名称识别产品(Iphone,Samsung等),这样更方便。