如何将int列传递给采用int参数的过程

时间:2018-03-30 11:30:54

标签: sql sql-server

我有一个存储过程MyProcedure需要int作为参数,现在我需要将另一个表中的int列作为参数传递给过程。我怎么写一个声明来实现呢?出于某些原因,我无法在代码中使用游标。下面是我的伪代码。感谢。

Create Procedure MyProcedure
  @i_input INT
AS
... ...

create table MyTable
(
    id int,
    otherdata float
)

exec MyProcedure (select id from MyTable)

2 个答案:

答案 0 :(得分:0)

寻找功能,因为您无法通过DML / DDL运行程序

CREATE TABLE MyResult
(
  id INT,
  results VARCHAR(MAX)
)
Go
CREATE FUNCTION MyFunction(@i_input INT)
RETURNS TABLE
AS RETURN
(
  SELECT @i_input AS ID, 'result1' AS results
)
Go
INSERT INTO MyResult SELECT * FROM MyFunction(1)

答案 1 :(得分:0)

你可以这样做

Create Procedure MyProcedure
  @i_input INT
AS
 ... ...

create table MyTable
(
   id int,
   otherdata float
)
Declare @temp_id int  
select @temp_id  =id from MyTable 

exec MyProcedure @temp_id