.net 如何在插入中进行选择?

.net 如何在插入中进行选择?,.net,sqlite,.net,Sqlite,我想做这样的事情 INSERT INTO link_list(link, status, hash_type, hash_id) VALUES(@link, @status, @hash_type, @hash_id); INSERT INTO active_dl(fileId, orderNo) VALUES(last_insert_rowid(), SELECT COUNT(*) FROM active_dl); 但很明显,它是错误的,并且select上存在语法错误。我该怎么写?使用sql

我想做这样的事情

INSERT INTO link_list(link, status, hash_type, hash_id)
VALUES(@link, @status, @hash_type, @hash_id);
INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), SELECT COUNT(*) FROM active_dl);
但很明显,它是错误的,并且select上存在语法错误。我该怎么写?使用sqlite。

将SELECT查询放在括号中

像这样:

INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), (SELECT COUNT(*) FROM active_dl));
你为什么不试试:

DECLARE @var INT
SET @var = (Select Count(*) from active_dl)

INSERT INTO active_dl(fileId, orderNo)
VALUES(last_insert_rowid(), @var);
你试过了吗?也许:

...
VALUES(last_insert_rowid(), (SELECT COUNT(*) FROM active_dl)); <--- with parens

我并不声称了解sqlite,但这可能会有所帮助

我相信标准SQL允许您使用值或选择进行插入,因此我将介绍:

insert into active_dl(fileId, orderNo)
    select last_insert_rowid(), COUNT(*) FROM active_dl;
SQLite是否允许这样做,我不确定,因此社区wiki