emp
次の列を持つ名前のテーブルがあります。
id int (autoincrement),
name varchar,
maxid int
id
、name
、およびmaxid
autoincrementmaxid
の値を挿入したいid
。
以下の 2 つのクエリ オプションのうち、どちらが最適なオプションで、その理由は何ですか?
オプション1:
insert into emp (name,maxid) values ('abc',(select max(id)+1 from emp))
オプション 2:
string QRY = "insert into emp values('abc',0) select scope_identity()";
sqlcommand cmd= new sqlcommand(QRY, con);
datatable dt = new datatable();
con.open();
dt.load(cmd.executereader());
con.close();
int scopeid=int.parse(dt.rows[0][0].tostring());
QRY="update emp set maxid='"+scopeid+"' where id ='"+scopeid+"'";
cmd= new sqlcommand(QRY, con);
cmd.executenonquery();