如果我有一个插入语句,例如:
INSERT INTO MyTable
(
Name,
Address,
PhoneNo
)
VALUES
(
'Yatrix',
'1234 Address Stuff',
'1112223333'
)
如何使用OUTPUT子句设置@var INT
新行的标识值(称为Id
)?例如,我已经看到了将INSERTED.Name放入表变量中的示例,但是我无法将其放入非表变量中。
我已经尝试过OUPUT INSERTED.Id AS @var
,,SET @var = INSERTED.Id
但是都没有用。
您可以像这样将新插入的ID输出到SSMS控制台:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
当您需要将ID返回给调用应用程序时,也可以在C#中使用它-
只需使用.ExecuteScalar()
(而不是.ExecuteNonQuery()
)执行SQL查询以读取ID
返回的结果即可。
或者,如果您需要捕获新插入的ID
T-SQL内部(例如,以便以后进行进一步处理),则需要创建一个表变量:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
这样,您可以将多个值放入其中@OutputTbl
并对其进行进一步处理。您还可以#temp
在此处使用“常规”临时表()或什至“真实”持久表作为您的“输出目标”。
问题内容: 这不起作用: 任何想法如何通过id将插入范围缩小到特定行? 问题答案: 在插入语句中,您将没有现有行来执行操作?您要插入新行,是否意味着要执行更新语句?
其思想是创建一个准备好的语句将信息插入到用户表中,然后从生成的内容中获取insert_id以在另一个insert语句中使用 这是我的注册脚本的一个版本 第一条准备好的语句正确运行并向表中插入信息,之后成功回显$RETURNID变量。脚本中的下一个是我准备好的第二条语句,当它试图运行im时,得到的错误是: 致命错误:对第17行d:\filepath\register.php中的非对象调用成员函数bi
主要内容:1.不指定列名,2.通过指定列名称SQL INSERT语句用于在表中插入单个或多个数据。 在SQL中,可以通过以下两种方式插入数据: 不指定列名称 通过指定列名称 假设有一个表: 的结构和数据记录如下 - EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 4
主要内容:语法,实例,使用一个表来填充另一个表SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。 语法 INSERT INTO 语句有两种基本语法,如下所示: 在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。 如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO
问题内容: 我有一个脚本,该脚本在s和s中使用子句实现一些同步逻辑。 现在,我在上面添加了一个日志记录层,我想添加第二个子句以将值写入报告表中。 我可以在语句中添加第二个子句: 这可行,但是只要我尝试添加目标 我之前收到以下错误消息: 我在这里找到了类似的问题,但是它并没有进一步帮助我,因为我要插入的字段在两个表之间并不重叠,并且我也不想修改工作同步逻辑(如果可能)。 更新: 马丁·史密斯(Mar
数据库:Sybase Advantage 11 在我对数据进行规范化的过程中,我试图删除从以下语句中得到的结果: