SQL dinamico per pool SQL dedicati in Azure Synapse Analytics

In questo articolo sono inclusi suggerimenti per soluzioni di sviluppo che usano SQL dinamico nei pool SQL dedicati.

Esempio di SQL dinamico

Durante lo sviluppo di codice dell'applicazione per pool SQL dedicati potrebbe essere necessario usare SQL dinamico per offrire soluzioni flessibili, generiche e modulari. I pool SQL dedicati non supportano attualmente i tipi di dati BLOB.

Il mancato supporto dei tipi di dati BLOB potrebbe limitare le dimensioni delle stringhe poiché i tipi di dati BLOB includono i tipi varchar (max) e nvarchar (max).

Se sono stati usati questi tipi nel codice dell'applicazione durante la creazione di stringhe di grandi dimensioni, è necessario separare il codice in blocchi e usare invece l'istruzione EXEC.

Un semplice esempio:

DECLARE @sql_fragment1 VARCHAR(8000)=' SELECT name '
,       @sql_fragment2 VARCHAR(8000)=' FROM sys.system_views '
,       @sql_fragment3 VARCHAR(8000)=' WHERE name like ''%table%''';

EXEC( @sql_fragment1 + @sql_fragment2 + @sql_fragment3);

Se la stringa è breve, è possibile usare sp_executesql come di consueto.

Nota

Le istruzioni eseguite come SQL dinamico saranno ancora soggette a tutte le regole di convalida TSQL.

Passaggi successivi

Per altri suggerimenti sullo sviluppo, vedere la panoramica dello sviluppo.