Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tip
Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.
Bu makalede T-SQL döngülerini kullanmak, imleçleri değiştirmek ve Synapse SQL ile ilgili çözümler geliştirmek için temel ipuçları sağlanır.
WHILE döngülerinin amacı
Synapse SQL, deyim bloklarını tekrar tekrar yürütmek için WHILE döngüsünü destekler. Bu WHILE döngüsü, belirtilen koşullar true olduğu sürece veya kod break anahtar sözcüğünü kullanarak döngünün özel olarak sonlandırana kadar devam eder.
Synapse SQL'deki döngüler, SQL kodunda tanımlanan imleçleri değiştirmek için kullanışlıdır. Neyse ki, SQL kodunda yazılan neredeyse tüm imleçler hızlı ileri ve salt okunur türdendir. Bu nedenle WHILE döngüleri, imleçleri değiştirmek için harika bir alternatiftir.
Synapse SQL'de imleçleri değiştirme
Dalmadan önce şu soru dikkate alınmalıdır: "Bu imleç, küme tabanlı işlemleri kullanmak için yeniden yazılabilir mi?" Çoğu durumda yanıt evettir ve genellikle en iyi yaklaşımdır. Küme tabanlı bir işlem genellikle yinelemeli, satır satır yaklaşımından daha hızlı yürütülür.
Hızlı ileriye doğru salt okunur imleçler, döngü yapısıyla kolayca değiştirilir. Aşağıdaki kod basit bir örnektir. Bu kod örneği, veritabanındaki her tablonun istatistiklerini güncelleştirir. Döngüdeki tabloları yineleyerek her komut sırayla yürütülür.
İlk olarak, tek tek deyimleri tanımlamak için kullanılan benzersiz bir satır numarası içeren geçici bir tablo oluşturun:
CREATE TABLE #tbl
WITH
( DISTRIBUTION = ROUND_ROBIN
)
AS
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS Sequence
, [name]
, 'UPDATE STATISTICS '+QUOTENAME([name]) AS sql_code
FROM sys.tables
;
İkincisi, döngünün yürütülmesi için gereken değişkenleri başlatın:
DECLARE @nbr_statements INT = (SELECT COUNT(*) FROM #tbl)
, @i INT = 1
;
Şimdi deyimleri teker teker yürütecek şekilde döngü yapın.
WHILE @i <= @nbr_statements
BEGIN
DECLARE @sql_code NVARCHAR(4000) = (SELECT sql_code FROM #tbl WHERE Sequence = @i);
EXEC sp_executesql @sql_code;
SET @i +=1;
END
Son olarak ilk adımda oluşturulan geçici tabloyu bırakın
DROP TABLE #tbl;
Sonraki adımlar
Daha fazla geliştirme ipucu için bkz . geliştirmeye genel bakış.