我有一个名为SELECT_DESCRIPTION的过程,它接收一个id并返回我需要在我的页面中显示的Description字段。
现在我想创建一个新的过程,它有一些来自select子句的id,如下所示:
SELECT id FROM MYTABLE
可以将它传递给SELECT_DESCRIPTION过程,因此我可以使用相同数量的描述
如果我使用的是php,我会做这样的事情:
$sql=”SELECT id FROM MYTABLE”;
$result = mysql_query($sql) //using mysql to make the example faster but TSQL is what I use
or die(mysql_error());
while($row = mysql_fetch_array( $result )) {
$newSql = "EXEC SELECT_DESCRIPTION @id = '$row[‘id’]'";
//do whatever with $newSql
}
但我需要使用一个程序。是可以做到的吗?我该怎么做?
非常感谢!
答案 0 :(得分:0)
所以你想在TSQL中完成所有这些工作?像这样的东西会这样做:
DECLARE @tmp TABLE (tmpID INT IDENTITY, tblID INT)
DECLARE @RecordCount INT,
@LoopCount INT,
@ID INT
INSERT INTO @tmp SELECT id FROM MYTABLE
SELECT @RecordCount = COUNT(*) FROM @tmp
SET @LoopCount = 1
WHILE @LoopCount <= @RecordCount
BEGIN
SELECT @ID = tblID FROM @tmp WHERE tmpID = @LoopCount
EXEC SELECT_DESCRIPTION @ID
SELECT @LoopCount = @LoopCount + 1
END
@tmp表有一个标识列,可以确保您运行循环的任何数据都有连续的行号(1,2,3,4等)。