SQL Server 2008 插入后创建触发器...返回id...调用存储过程

标签 sql sql-server sql-server-2008 stored-procedures

我只想要一个简单的 sql server 触发器(插入后)从插入的表中取回 ID... 所以算法:

  • 新记录插入表
  • 触发器被称为
  • 触发器从插入的记录中获取 id 并调用存储过程

  • 我失败的尝试如下:
    CREATE TRIGGER [dbo].[insertNewMarket] 
       ON  [dbo].[markets]
       AFTER insert
    AS 
    BEGIN
        declare @marketID int
        SET NOCOUNT ON;
        --SELECT ID from inserted
        --set @marketID = Inserted.ID--get the inserted id and pass to stored proc
        exec marketInsert @marketID 
    END
    GO
    

    最佳答案

    在触发器中,您可以访问名为“INSERTED”的表,该表将包含新插入的记录详细信息。下面的小例子

    CREATE TRIGGER [dbo].[insertNewMarket]   
       ON  [dbo].[markets]  
       AFTER insert  
    AS   
    BEGIN  
        declare @marketID int  
        SET NOCOUNT ON;  
        SELECT @marketID = ID from inserted  
        exec marketInsert @marketID   
    END  
    GO  
    

    关于SQL Server 2008 插入后创建触发器...返回id...调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24320924/

    相关文章:

    performance - TSql,在数据输入之前或之后建立索引

    sql - ExecuteNonQuery 总是返回 -1,即使 SQL 语句是正确的

    javascript - node.js mssql javascript方法第二次调用从数据库打印未定义的数据

    mysql - mysql 临时表更新

    sql-server-2008 - SQL Server 在非聚集非唯一索引中索引空值吗?

    sql - 根据变量/查询结果选择列的优雅方法?

    sql - 如何更干净地将 sql 聚合函数与 distinct 结合起来?

    sql - 带有消息 'Syntax error in FROM clause' delphi 的 EOleException

    sql - 在有 in 子句的地方将 SQL 转换为 Linq

    sql - 将 SSRS 报告分组到多个字段