SQL dinamico in SQL Data WarehouseDynamic SQL in SQL Data Warehouse

Durante lo sviluppo di codice dell'applicazione per SQL Data Warehouse potrebbe essere necessario utilizzare SQL dinamico per offrire soluzioni flessibili, generiche e modulari.When developing application code for SQL Data Warehouse you may need to use dynamic sql to help deliver flexible, generic and modular solutions. Attualmente SQL Data Warehouse non supporta i tipi di dati BLOB.SQL Data Warehouse does not support blob data types at this time. Ciò potrebbe limitare le dimensioni delle stringhe poiché i tipi di BLOB includono tipi varchar(max) e nvarchar(max).This may limit the size of your strings as blob types include both varchar(max) and nvarchar(max) types. Se sono stati utilizzati questi tipi nel codice dell'applicazione durante la creazione di stringhe molto grandi, è necessario separare il codice in blocchi e utilizzare invece l'istruzione EXEC.If you have used these types in your application code when building very large strings, you will need to break the code into chunks and use the EXEC statement instead.

Un semplice esempio:A simple example:

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.If the string is short you can use sp_executesql as normal.

Nota

Le istruzioni eseguite come SQL dinamico saranno ancora soggette a tutte le regole di convalida TSQL.Statements executed as dynamic SQL will still be subject to all TSQL validation rules.

Passaggi successiviNext steps

Per altri suggerimenti sullo sviluppo, vedere la panoramica dello sviluppo.For more development tips, see development overview.