在 T-SQL 中,我想通过逐行读取来循环访问存储过程中的表。
DECLARE @IMAX INT,
@ICOUNT INT,
@INTERFACE_ID_36 INT,
@INTERFACE_ID_38 INT
SELECT * FROM INTERFACE_36_DATA
SET @IMAX = @@ROWCOUNT
SET @ICOUNT = 1
WHILE(@ICOUNT <= @IMAX)
BEGIN
SELECT @INTERFACE_ID_36 = Interface_ID
FROM INTERFACE_36_DATA
WHERE ROW_NUMBER() OVER (ORDER BY id) AS = @ICOUNT --syntax error here
IF @INTERFACE_ID_36 = 10
SET @INTERFACE_ID_38 = 0
ELSE IF @INTERFACE_ID_36 =
Run Code Online (Sandbox Code Playgroud)
我建议使用 Cursors 更快地重写它:
DECLARE @IMAX INT,
@ICOUNT INT,
@INTERFACE_ID_36 INT,
@INTERFACE_ID_38 INT
DECLARE db_cursor CURSOR FOR
SELECT Interface_ID FROM INTERFACE_36_DATA
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @INTERFACE_ID_36
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @INTERFACE_ID_36
-- All your other selects
FETCH NEXT FROM db_cursor INTO @INTERFACE_ID_36
END
CLOSE db_cursor
DEALLOCATE db_cursor
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14729 次 |
| 最近记录: |