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í využívající dynamické 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, abyste mohli poskytovat flexibilní, obecná a modulární řešení. Vyhrazené fondy SQL v tuto chvíli nepodporují datové typy 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 v kódu aplikace použili k sestavení velkých řetězců, musíte kód rozdělit do bloků 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 běžným způsobem.

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.