Sdílet prostřednictvím


Dynamické SQL pro vyhrazené fondy SQL ve službě Azure Synapse Analytics

Tento článek obsahuje tipy pro vývojová řešení s využitím dynamického SQL ve vyhrazených fondech SQL.

Příklad dynamického SQL

Při vývoji kódu aplikace pro vyhrazené fondy SQL možná budete muset použít dynamický SQL, který vám pomůže poskytovat flexibilní, obecná a modulární řešení. Vyhrazené fondy SQL v tuto chvíli nepodporují datové typy objektů blob.

Nepodporování datových typů objektů blob může omezit velikost řetězců, protože datové typy objektů blob zahrnují typy varchar(max) i nvarchar(max).

Pokud jste tyto typy použili v kódu aplikace k sestavení velkých řetězců, musíte kód rozdělit na bloky dat a místo toho použít příkaz EXEC.

Jednoduchý příklad:

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);

Pokud je řetězec krátký, můžete použít sp_executesql jako obvykle.

Poznámka

Příkazy spouštěné jako dynamický SQL budou nadále podléhat všem ověřovacím pravidlům T-SQL.

Další kroky

Další tipy pro vývoj najdete v přehledu vývoje.