sql - 查找自动递增字段中插入的值

标签 sql sql-server

我有两个表:

  • 房间:
    • ID(自动递增主键,int)
    • 主题 (varchar(50))
    • MangerId (varchar(50))
  • Rooms_Users:
    • 用户 ID (varchar(50))
    • RoomId (varchar(50))
    • 两个字段一起为主键

我想插入一个房间,但我还必须将管理器插入到表 rooms_users 中。

这是我到目前为止所拥有的:

ALTER PROCEDURE [dbo].[Creat_Room]  @MangerId varchar(50) ,@Topic varchar(50)
    AS
BEGIN
    SET NOCOUNT 
    insert into Rooms(ManagerId,Topic) values(@MangerId,@Topic)
    insert into Rooms_Users(UserId,RoomId) values(@MangerId,?????????????)
END

???????????? 是问题:我不知道在这里放什么,我想把上面插入的 roomid 放在上面。

最佳答案

您可以使用output子句。看看MSDN:OUTPUT Clause (Transact-SQL)

示例:

declare @tbl table
(
    NewID int
)

insert into Rooms(ManagerId,Topic)
output inserted.ID into @tbl
values(@MangerId,@Topic)

然后表变量将包含为您插入的行指定的新 ID

关于sql - 查找自动递增字段中插入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135455/

相关文章:

sql-server - postgresql 相当于 SQL Server sysprocesses loginname 和 program_name

sql - 直接从另一个数据库还原 SQL Server 数据库

sql - 使用 SQL 查询确定可用磁盘大小

SQL Server 审核注销会产生大量读取

mysql - SQL意外返回

java - 准备语句的空结果集

MYSQL 过程没有被调用

c# - ComboBox 项目到多个文本框

sql - 列出在 postgresql 中某一列中具有相同值的行

sql-server - Apriori算法的 'confidence'和 'lift'概念有什么用