SQL INSERT,参数为查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL INSERT,参数为查询相关的知识,希望对你有一定的参考价值。

如何从数据库中插入带有值的参数。我有一些字段,我应该从这个数据库中插入值+ 1(加一)

例如

myCommand.CommandText =
            "INSERT INTO GAMES (GAME_NR, GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
            " VALUES (@game_nr, @game_player_id, @game_nrontable, @game_role_id)"

'Example
myCommand.Parameters.Add("@game_nr", SqlDbType.Int).Value = **"(SELECT MAX(GAME_NR) FROM GAMES)" + 1**
答案

您不需要参数,可以尝试以下代码。

myCommand.CommandText =
            "INSERT INTO GAMES (GAME_NR, GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
            " VALUES ((SELECT MAX(GAME_NR) + 1 FROM GAMES), @game_player_id, @game_nrontable, @game_role_id)"

但它看起来像是表的主键。如果Game_Nr是pr,你应该使用auto-inc。身份,然后你不需要这个参数。

这将是。

myCommand.CommandText =
                "INSERT INTO GAMES (GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
                " VALUES (@game_player_id, @game_nrontable, @game_role_id)"
另一答案

你没有。你制作GAME_NR和自动递增的主键:

create table games (
    game_nr int auto_increment primary key,
    . . .
);

然后你做插入:

INSERT INTO GAMES (GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID)
    VALUES (@game_player_id, @game_nrontable, @game_role_id);

让数据库完成工作。

以上是关于SQL INSERT,参数为查询的主要内容,如果未能解决你的问题,请参考以下文章

从 Excel VBA 运行工作参数化 Access SQL 查询 (INSERT INTO) 时出现“需要对象”错误

insert 插入带select查询

[mybatis]动态sql_sql_抽取可重用的sql片段

SQL语句execute后的参数

sql 循环查询

Microsoft SQL Server 代码片段收集