我的DataTable中的数据就像
ID ContactName1 Designation1 ContactName2 Designation2
1 A dummy B sam
我的表的表结构是
ID ContactName Designation
我将存储过程中的值传递为:
@ContactName1
@Designation1
@ContactName2
@Designation2
我想要一个插入语句来插入记录。
我怎样才能做到这一点?
答案 0 :(得分:2)
假设您的ID主键设置为自动增量,并且您的表有三个字段:
INSERT INTO DataTable (ContactName, Designation) VALUES
(@ContactName1, @Designation1),
(@ContactName2, @Designation2);
根据实际ID,如果您没有自动增加,从Ivan的响应评论判断,你没有,你实际上可以使用MAX()语句得到它:
SELECT MAX(ID) AS max_id FROM DataTable
答案 1 :(得分:1)
鉴于它存在于存储过程中,为什么要关心它是一个还是两个INSERT语句?显然,两个陈述是微不足道的。
某些DBMS允许您在单个INSERT中列出多个值子句(@Ivan建议这样):
INSERT INTO Table(ID, ContactName, Designation)
VALUES(1, @ContactName1, @Designation1)
VALUES(1, @ContactName2, @Designation2);
我不确定值列表之间是否需要逗号。我也不清楚Table中的两个记录是否允许具有相同的ID,也不确定ID是如何确定的 - 这可能是一些自动增量的东西,不同的DBMS也是这样做的。
如果您的DBMS在单个INSERT语句中不支持多个VALUES子句,那么您最好接受两个INSERT语句。如果原子性是一个问题,你可以考虑事务 - 虽然这只是一个更大的事务的一部分,特别是错误的ROLLBACK将是一个问题。如果您的DBMS支持SAVEPOINTS,那么该过程可以在进入时建立保存点,并在退出时提交或回滚到保存点。
答案 2 :(得分:0)
插入数据库值(根据COMMA分配的数量和订单给予值)
EX: -
INSERT INTO TABLENAME VALUES(1,'INDIA')
这里是两列S.N. &安培;国家