DECLARE server_cursor INSENSITIVE CURSOR
FOR SELECT dbname, dbalias, [server], isenable FROM dbo.LINKED_SERVER
FOR READ ONLY
DECLARE @c_dbname varchar(50)
DECLARE @c_dbalias varchar(200)
DECLARE @c_server varchar(50)
DECLARE @c_isenable int
OPEN server_cursor
FETCH NEXT FROM server_cursor INTO @c_dbname, @c_dbalias, @c_server, @c_isenable
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT OPENQUERY(SITE_A2, 'SELECT dbname, dbalias, [server], isenable, updid, updip, upddt
FROM ' + @c_dbname + '.dbo.LINKED_SERVER WHERE 0 = 1') -- 의미는 커서내에 저장되어 있는 원격서버들의 데이터베이스를 돌아가며 특정값을 입력하고자 함입니다.
VALUES('EPMDB', '측정로우데이터', NULL, 0, 'system', '127.0.0.1', GETDATE())
FETCH NEXT FROM server_cursor INTO @c_dbname, @c_dbalias, @c_server, @c_isenable
END
CLOSE server_cursor
DEALLOCATE server_cursor
네 물론 저렇게 할수 없다는것은 알고 있습니다. 하지만 제 의도를 충분히 전달하고자 저런 무모한 쿼리를 써보았습니다.
커서내에서 openquery상에 변수를 사용할수 있는 방법이 있는지 도움이 절실합니다. 읽어주셔서 감사합니다.
|