在SQL Server 2016中,我有一個存儲過程。在這種SP我想用下面的語句來獲取從一個鏈接服務器(PostgreSQL的)一個視圖中的所有數據:OPENQUERY拋出「內存不足」錯誤:限制行直到全部加載
INSERT INTO myTable
SELECT Field1,
Field2,
Field3,
...
FROM OPENQUERY(myServer, 'SELECT * FROM myDatabase.mySchema.myView')
當我使用它像這樣,我經過幾次收到以下錯誤信息分鐘:
Out of memory while reading tuples.
我改變了SELECT
聲明OPENQUERY
只得到了第一個百萬行後就正常了:
SELECT * FROM myDatabase.mySchema.myView ORDER BY Field1 LIMIT 1000000
現在我不確定WH以最實際的方式獲取所有數據。我可以插入第一個1000000行,然後使用OFFSET
插入下一個1000000。但我不認爲這將是一個很好的解決方案,因爲我不知道行數是多少。循環將是另一種方式,但我真的不知道這是否是實現我想要的最簡單的方法。
任何幫助,將不勝感激。
您的視圖中是否存在主鍵? –
@MitchWheat不幸的是,視圖中沒有主鍵和唯一列。 –