【问题标题】:Stored Procedure to select columns and insert into different table选择列并插入不同表的存储过程
【发布时间】:2017-07-05 19:52:40
【问题描述】:

我有 2 个表,例如:绿色(用户 ID、姓名、地址)、红色(用户 ID、姓名、临时地址)

我想要

select from Green table (Name) Where = userID 
AND 
INSERT INTO Red(userID,Name,TemproraryAddress) 
VALUES (@userID,@Name,@TemproraryAddress)

我的主要问题是如何将选定的值分配给标量变量?

注意:此示例表是为了展示一个示例场景,不适合实际使用...

【问题讨论】:

    标签: sql-server tsql stored-procedures


    【解决方案1】:

    你的意思是喜欢

    insert into Red(userId, Name, TemporaryAddress
    select userId, Name, Address
    from Green
    where userId = @userId
    

    declare @userId int, @Name varchar(100), @address varchar(100)
    
    select @userId = userId, @Name = Name, @address = Address from Green where userId = 12345
    
    insert into Red (userId, Name, TemporaryAddress) values (@userId, @Name, @address)
    

    还是别的什么?

    ...您的问题不清楚您到底想做什么。您现有的代码是什么样的,它没有做哪些您希望它做的事情?

    编辑

    另一种选择是在 Green 表上使用插入触发器。我不确定你是否想基本上匹配表格,但如果你这样做了,那么这就是如何做到这一点:

    create trigger green_InsToRed_TRG on Green for insert as
    
    insert into Red (UserId, Name, TemporaryAddress)
    select UserId, Name, Address from inserted
    

    【讨论】:

    • 仅选择 Name From Green where userid = '1234' 并将该名称插入 Red (Name)
    • 我认为选项 2 会起作用,但您忽略了是否要复制 userId 值和地址值。另外,请参阅我对触发器的建议。
    猜你喜欢
    • 1970-01-01
    • 2019-07-21
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多