Udostępnij za pośrednictwem


Dynamiczny program SQL dla dedykowanych pul SQL w usłudze Azure Synapse Analytics

W tym artykule przedstawiono porady dotyczące rozwiązań programistycznych korzystających z dynamicznego języka SQL w dedykowanych pulach SQL.

Przykład dynamicznego kodu SQL

Podczas tworzenia kodu aplikacji dla dedykowanych pul SQL może być konieczne użycie dynamicznego języka SQL w celu zapewnienia elastycznych, ogólnych i modułowych rozwiązań. Dedykowane pule SQL nie obsługują obecnie typów danych obiektów blob.

Nieobsługiwalne typy danych obiektów blob mogą ograniczać rozmiar ciągów, ponieważ typy danych obiektów blob obejmują zarówno typy varchar(max) i nvarchar(max).

Jeśli w kodzie aplikacji użyto tych typów do kompilowania dużych ciągów, należy zamiast tego podzielić kod na fragmenty i użyć instrukcji EXEC.

Prosty przykład:

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

Jeśli ciąg jest krótki, możesz użyć sp_executesql jak zwykle.

Uwaga

Instrukcje wykonywane jako dynamiczne sql nadal będą podlegać wszystkim regułom weryfikacji języka T-SQL.

Następne kroki

Aby uzyskać więcej porad dotyczących programowania, zobacz Omówienie programowania.