如何通过存储过程中的[rowno] [columnno]访问表值?

时间:2016-09-09 11:14:38

标签: sql-server stored-procedures

以下是我的存储过程代码:

CREATE TYPE my_table AS TABLE (
  rowID int,
  fromTable varchar(40),
  tableRow int,
  fromRange varchar(10),
  toRange int
)

USE TestDB;
GO
IF OBJECT_ID('table_parameter_sample_proc') IS NOT NULL
DROP PROCEDURE table_parameter_sample_proc;
go 
CREATE PROCEDURE table_parameter_sample_proc (
@datasource my_table READONLY)
AS

SELECT
  rowID,fromTable,tableRow,fromRange,toRange
FROM @datasource
GO

它工作正常。这就是我所说的:

DECLARE @datasource AS my_table
INSERT @datasource (rowID, fromTable,tableRow,fromRange,toRange)
VALUES
  (1, 'TableA',2,'3',5),
  (2, 'TableB',3,'y',null),
  (3, 'TableC',4,'5',10)
EXEC table_parameter_sample_proc @datasource

当我调用存储过程它返回整个表,但我需要单独访问值,例如我只需要值'tableA'(table [row] [column])。当我写作

SELECT fromTable[0] FROM @datasource

它给了我fromTable列的所有值,fromTable [0] [0]不起作用。 这是什么解决方案? 提前谢谢。

0 个答案:

没有答案