В моей БД есть таблица TodayID, таблица содержит более 400000 строк, я ищу способ / пример для загрузки данных в БД MSSQL со связанного сервера с использованием цикла While, With для каждого идентификатора. Я использовал IN, но получил ошибку «openquery больше чем 8000 символов», используя EXEC AT, настройка RPC, RPC out не решила проблему.
DECLARE @SQL VARCHAR(MAX)
DECLARE @ID VARCHAR(MAX)
DECLARE @resTable TABLE(ID VARCHAR(50), NAME VARCHAR(100), DTIME DATETIME, FIELD VARCHAR(100))
SET @ID = (STUFF((SELECT ',' + '''''' + [ID] + '''''' FROM [TodayID] FOR XML PATH('')) ,1,1,'') )
Print @ID
SET @SQL='SELECT * FROM OPENQUERY(RemoteServer, ''SELECT ID, NAME, DTIME, FIELD FROM AUDIT WHERE ID IN (' + @ID + ') '')'
Print @SQL
INSERT INTO @resTable EXEC (@SQL)
select * from @resTable