存储过程错误 .. 将列从一个 table 插入到另一个
Stored procedure error .. Inserting columns from one table to another
我有一个存储过程,其中我试图在 table 中插入两列,一列的值来自另一列 table,第二列的值是常量并传入参数.
我想我将不得不使用某种循环,但我不知道如何使用。请帮忙
我的存储过程
CREATE PROCEDURE sp_MTS_MTS_MemberTracking_request
-- Add the parameters for the stored procedure here
@monthYear datetime
AS
select [MemberId] from [dbo].[MTS_Members] where Is_Active='true'
insert into [dbo].[MTS_MemberTracking] (MemberId,MonthYear)values ((select [MemberId]
from [dbo].[MTS_Members]
where Is_Active='true'),@monthYear)
错误
消息 512,级别 16,状态 1,第 1 行
子查询返回了 1 个以上的值。当子查询跟在 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
声明已终止。
由于 MTS_Members
中可以有多个记录 Is_Active='true'
,因此您不能使用 insert... values
语法插入它。
如果您真的想插入所有 "active" 记录的 ID,则只需将您的查询更改为:
insert into [dbo].[MTS_MemberTracking] (MemberId,MonthYear)
select [MemberId], @monthYear
from [dbo].[MTS_Members]
where Is_Active='true'
或者,如果应该恰好插入一条记录 - 您必须将 select 的 where
条件更改为 return 正好是一个 MemberId,将该 ID 存储在某个变量中并用于 insert... values
构造。
我有一个存储过程,其中我试图在 table 中插入两列,一列的值来自另一列 table,第二列的值是常量并传入参数.
我想我将不得不使用某种循环,但我不知道如何使用。请帮忙
我的存储过程
CREATE PROCEDURE sp_MTS_MTS_MemberTracking_request
-- Add the parameters for the stored procedure here
@monthYear datetime
AS
select [MemberId] from [dbo].[MTS_Members] where Is_Active='true'
insert into [dbo].[MTS_MemberTracking] (MemberId,MonthYear)values ((select [MemberId]
from [dbo].[MTS_Members]
where Is_Active='true'),@monthYear)
错误
消息 512,级别 16,状态 1,第 1 行 子查询返回了 1 个以上的值。当子查询跟在 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。 声明已终止。
由于 MTS_Members
中可以有多个记录 Is_Active='true'
,因此您不能使用 insert... values
语法插入它。
如果您真的想插入所有 "active" 记录的 ID,则只需将您的查询更改为:
insert into [dbo].[MTS_MemberTracking] (MemberId,MonthYear)
select [MemberId], @monthYear
from [dbo].[MTS_Members]
where Is_Active='true'
或者,如果应该恰好插入一条记录 - 您必须将 select 的 where
条件更改为 return 正好是一个 MemberId,将该 ID 存储在某个变量中并用于 insert... values
构造。