sto ottenendoDichiarazione 'SELECT' non è supportato in questa versione di SQL Server - SQL Azure
Statement 'SELECT' non è supportato in questa versione di SQL Server in SQL Server
per la query di seguito all'interno stored procedure
DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) = ''
,@sqlTempTable NVARCHAR(MAX) = '#itemSearch'
,@sqlInto NVARCHAR(MAX) = ''
,@params NVARCHAR(MAX)
SET @sqlSelect ='SELECT
,IT.ITEMNR
,IT.USERNR
,IT.ShopNR
,IT.ITEMID'
SET @sqlFrom =' FROM dbo.ITEM AS IT'
SET @sqlInto = ' INTO ' + @sqlTempTable + ' ';
IF (@cityId > 0)
BEGIN
SET @sqlFrom = @sqlFrom +
' INNER JOIN dbo.CITY AS CI2
ON CI2.CITYID = @cityId'
SET @sqlSelect = @sqlSelect +
'CI2.LATITUDE AS CITYLATITUDE
,CI2.LONGITUDE AS CITYLONGITUDE'
END
SELECT @params =N'@cityId int '
SET @sql = @sqlSelect [email protected] [email protected]
EXEC sp_executesql @sql,@params
ho circa 50.000 record, così ha deciso di utilizzare Temp tabella. Ma sorpreso di vedere questo errore.
Come posso ottenere lo stesso in SQL Azure?
Modifica: Leggere questo blog http://blogs.msdn.com/b/sqlazure/archive/2010/05/04/10007212.aspx suggerendoci di CREARE una tabella all'interno della procedura memorizzata per la memorizzazione dei dati anziché la tabella Temp. È sicuro in concorrenza? Colpirà le prestazioni?
Aggiunta alcuni punti presi da http://blog.sqlauthority.com/2011/05/28/sql-server-a-quick-notes-on-sql-azure/
- Ciascuna tabella deve avere indice cluster. Le tabelle senza indice cluster non sono supportate.
- Ogni connessione può utilizzare un singolo database. Il database multiplo in una singola transazione non è supportato.
- 'USE DATABASE' non può essere utilizzato in Azure.
- Le tabelle temporali globali (o gli oggetti temporali) non sono supportate.
- Poiché non esiste un concetto di connessione a database incrociato, il server collegato non è il concetto in Azure in questo momento.
- SQL Azure è un ambiente condiviso e, a causa della stessa, non esiste il concetto di accesso a Windows.
- Lascia sempre oggetti TempDB dopo la loro necessità mentre creano pressione su TempDB.
- Durante l'inserimento buck utilizzare l'opzione batchsize per limitare il numero di righe da inserire. Ciò limiterà l'utilizzo dello spazio del log delle transazioni.
- Evitare l'uso non necessario del raggruppamento o del blocco ORDINA in base alle operazioni che portano all'utilizzo della memoria di fascia alta.
One da soluzioni: http://stackoverflow.com/a/34877208/1151741 – Nigrimmist