Tsql 如何从存储过程返回要在C数据读取器中使用的临时表?

Tsql 如何从存储过程返回要在C数据读取器中使用的临时表?,tsql,stored-procedures,sqldatareader,Tsql,Stored Procedures,Sqldatareader,我有下面的存储过程T-SQL,我想用C代码中的command.ExecuteReader调用它,这样我就可以循环处理引发的任何错误,或者直接从SQL调用它 但是,我不知道如何返回临时表-我只返回了0 CREATE PROCEDURE validate AS BEGIN DECLARE @ValidationResults TABLE ROWNUM int, ATP varchar(max), ATD varchar(max), ERROR varchar(max) ) S

我有下面的存储过程T-SQL,我想用C代码中的command.ExecuteReader调用它,这样我就可以循环处理引发的任何错误,或者直接从SQL调用它

但是,我不知道如何返回临时表-我只返回了0

CREATE PROCEDURE validate
AS
BEGIN
DECLARE @ValidationResults TABLE
  ROWNUM int,
  ATP varchar(max),
  ATD varchar(max),
  ERROR varchar(max)
  )
  SET NOCOUNT ON;

  INSERT INTO @ValidationResults
  SELECT ROWNUM, ATP, ATD, 'ATP must be two characters'
  FROM cb with (TABLOCKX)
  WHERE LEN(ATP) <> 2

  RETURN SELECT * FROM @ValidationResults   
END
GO

不使用return,只需从@ValidationResults中选择行。可以帮助您从存储过程中获取数据


是另一篇有用的文章

向我们展示读取数据的C代码!啊!多么简单-我假设要返回数据,您需要返回一些东西!lol数据阅读器不是真正的问题,因为现在它只是一个存储过程而不是一个选择。