중첩 커서에 이상한 문제가 있으며 그게 무엇인지 전혀 알지 못합니다.SQL Server 중첩 커서 문제
근처의 구문이 잘못되었습니다 '@str'
declare @dbname varchar(50) declare @servername varchar(50) declare srv cursor for select servername from test.dbo.servers declare @str varchar(200) truncate table test.dbo.temp open srv fetch next from srv into @servername while @@fetch_status = 0 begin set @str = 'Data Source='[email protected]+';Integrated Security=SSPI' declare db cursor for select name from opendatasource('SQLNCLI', @str).master.dbo.sysdatabases open db fetch next from db into @dbname while @@fetch_status = 0 begin insert test.dbo.temp (dbname, servername) values (@dbname, @servername) fetch next from db into @dbname end fetch next from srv into @servername close db deallocate db end close srv deallocate srv
그것은 나에게 다음 오류 메시지를 제공합니다 :
은 여기 내 T-SQL 코드입니다. [SQLSTATE 42000] (오류 102)
문제는 변수를 opendatasource 함수의 매개 변수로 지정하는 것과 같습니다. 하지만 왜? 그리고이 문제를 피하는 방법?
* 중첩 된 커서 * : 그건 바로 거기에 당신의 문제입니다! –
@marc_s 중첩 된 커서는 OP가 수행하고자하는 작업을 수행 할 수있는 유일한 방법이라고 생각합니다. (서버 컬렉션에있는 모든 데이터베이스를 순환하면서 이름이 테이블에 포함됩니다) –