Error SQL -502
Estou com um erro slq e não sei resolver:
declared cursor already exists no match for first value expresion
se alguém já se deparou com esse erro e conseguiu resolver me ajude.
declared cursor already exists no match for first value expresion
se alguém já se deparou com esse erro e conseguiu resolver me ajude.
Marcos Rossetto
Curtidas 0
Respostas
Alvaro Vieira
16/07/2012
Boa tarde Marcos, parece que você está usando a mesma variável (cursor) mais de uma vez sem fechá-la.
Veja o ex. abaixo que retirei do site http://www.mssqltips.com/sqlservertip/1599/sql-server-cursor-example/
Observe que existe o comando CLOSE após o uso do cursor. Se não for isso, coloque o seu código aqui para que possamos avaliá-lo.
O ex. abaixo faz um backup de todos os bancos de dados. Abraço.
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name
SET @path = C:\Backup\
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM MASTER.dbo.sysdatabases
WHERE name NOT IN (master,model,msdb,tempdb)
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + _ + @fileDate + .BAK
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Veja o ex. abaixo que retirei do site http://www.mssqltips.com/sqlservertip/1599/sql-server-cursor-example/
Observe que existe o comando CLOSE após o uso do cursor. Se não for isso, coloque o seu código aqui para que possamos avaliá-lo.
O ex. abaixo faz um backup de todos os bancos de dados. Abraço.
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name
SET @path = C:\Backup\
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM MASTER.dbo.sysdatabases
WHERE name NOT IN (master,model,msdb,tempdb)
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + _ + @fileDate + .BAK
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
GOSTEI 0
Marcos Rossetto
16/07/2012
Caro Alvaro, meu problema não é este, estou usando IBX, firebird e turbo Delphi 2006, ao excluir um item do meu banco ocorre o erro.
GOSTEI 0
Bruno Leandro
16/07/2012
marcos tente desabilitar as triggers desta tabela e executar a exclusão, ou excluir por meio do query e veja se o erro persiste, pois este erro pode estar ocorrendo dentro da trigger da tabela que esta excluindo o registro
GOSTEI 0