We couldn’t sign you in
Select the account you want to use.

Simptome

User-Defined funkcije (UDF-ove) koje se primenjuju u transact-SQL i koje vraćaju jednu vrednost podataka poznate su kao T-SQL Scalar User-Defined Functions (UDF-ove). 

Microsoft SQL Server 2019. uveo je funkciju UDF URL adrese koja može da poboljša performanse upita koji pozivaju T-SQL Scalar UDF-ove, u kojima je UDF izvršavanje glavno usko grlo. T-SQL Scalar UDF inlining automatski transformiše neogreničene UDF-ove u relacione izraze. 


Ova kumulativna ispravka uključuje nekoliko ispravki u sledećim oblastima za scenarije u kojima upit koji koristi Scalar UDF inlining može da vrati grešku ili neočekivane rezultate:

  • Greška nepodudaranja tipova ako je povratni tip UDF datoteke sql_variant (dodato u Microsoft SQL Server 2019 CU2)

  • UDF pozivanje iz sp_executesql prekidi (dodato u Microsoft SQL Server 2019 CU2)

  • UDF-ove koji upućuju na oznake bez povezane GOTO komande vraćaju netačne rezultate (dodate u Microsoft SQL Server 2019 CU2)

  • Nema dovoljno memorijskih uslova i curenja memorije dolazi zbog veoma velikih UDF-Microsoft SQL Server 2019. godine)

  • Nepokrenute promenljive koje se koriste u izrazima uslova (IF-ELSE) uzrokuju greške (dodate u Microsoft SQL Server 2019 CU2)

  • Greška eksplicitne konverzije ako UDF ima SQL_VARIANT (dodat u programu Microsoft SQL Server 2019 CU7)

  • Došlo je do greške pri upućivanju na scalar funkcije CHECKSUM (dodato u Microsoft SQL Server 2019 CU7)

  • UDF pozivanje sa velikim brojem skraćenih izraza ponovne procene može dovesti do greške u planeru koji se ne može dobiti (dodat u programu Microsoft SQL Server 2019 CU7)

  • Greška je povećana kada UDF upućivanje koristi OPTION (RECOMPILE) (dodato u programu Microsoft SQL Server 2019 CU7)

  • Greške dozvola podignute kada prikazi pozivaju ugrađene UDF-ove (dodate u Microsoft SQL Server 2019 CU9)

  • Došlo je do kršenja pravila pristupa prilikom korišćenja XEvent query_tsql_scalar_udf_inlined (dodato u Microsoft SQL Server 2019 CU9) 

  • Nedosledno ponašanje usled neusklađivanja UDF-QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n "QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n" upita (dodato u programu Microsoft SQL Server 2019 CU9)

  • UDF-ove sa inliningom sadrže agregacije koje mogu dovesti do greške planera koji se ne daje (dodato u programu Microsoft SQL Server 2019 CU9) 

  • Nema grešaka u memoriji zbog niza skalarnih operacija na istoj promenljivoj u uslovnim blokovima (dodato u Microsoft SQL Server 2019 CU9)

  • Kršenje pravila programa Access može da se pojavi kada objekat poziva scalar neposredni UDF (UDF1) sa scalarnim neposrednim UDF-om (UDF2) koji se koristi kao ulazni parametar nakon nadogradnje na CU9 (dodat u Microsoft SQL Server 2019 CU11)

  • UDF-ove koji nalažemo mogu dovesti do greške sa sledećim kodovima greške 6846, 1011 i 107 (dodati u programu Microsoft SQL Server 2019 CU11)

  • Unošenjem UDF-ova koji su pokrenuti kao nalog koji nije sysadmin može da izazove grešku "Došlo je do ozbiljne greške u trenutnoj komandi.  Rezultati, ako postoje, treba da se odbace" (dodati u programu Microsoft SQL Server CU16)

Ova kumulativna ispravka takođe blokira upisivanje u sledeće scenarije:

  • Ako UDF upućuje na određene interne funkcije (na primer @@ROWCOUNT) koje mogu da promene rezultate kada su navedeni (dodati u programu Microsoft SQL Server 2019 CU2)

  • Kada se agregatne funkcije prosleđuju kao parametri u skupi UDF (dodato u programu Microsoft SQL Server 2019 CU2)

  • Ako UDF upućuje na ugrađene prikaze (na primer: OBJECT_ID) (dodato u programu Microsoft SQL Server 2019 CU2)

  • Ako UDF koristi XML metode (dodate u programu Microsoft SQL Server 2019 CU4)

  • Ako UDF sadrži SELECT sa ODREDBOM ORDER BY bez "PRVIH 1" (dodato u programu Microsoft SQL Server 2019 CU4)

  • Ako upit SELECT izvršava dodelu zajedno sa odredbom ORDER BY (na primer, SELECT @x = @x + 1 FROM tabele ORDER BY column_name) (dodato u programu Microsoft SQL Server 2019 CU4)

  • Ako UDF sadrži više RETURN izraza (dodatih u programu Microsoft SQL Server 2019 CU5)

  • Ako se UDF poziva iz izraza RETURN (dodat u programu Microsoft SQL Server 2019 CU5)

  • Ako UDF upućuje na funkciju STRING_AGG (dodato u programu Microsoft SQL Server 2019 CU5)

  • Ako definicija UDF-a upućuje na udaljene tabele (dodate u Microsoft SQL Server 2019 CU6)

  • Ako upit za UDF pozivanje koristi GROUPING SETS, CUBE ili ROLLUP (dodat u programu Microsoft SQL Server 2019 CU6)

  • Ako UDF upit za pozivanje sadrži promenljivu koja se koristi kao UDF parametar za dodelu (na primer, SELECT @y=2, @x=UDF(@y)) (dodato u programu Microsoft SQL Server 2019 CU6)

  • Ako UDF upućuje na šifrovane kolone (dodato u Microsoft SQL Server 2019 CU11)

  • Ako UDF sadrži reference na "WITH XMLNAMESPACES" (dodato u Microsoft SQL Server 2019 CU11)

  • Ako upit koji poziva UDF ima uobičajene izraze tabele (CTES) (dodat u Microsoft SQL Server 2019 CU11)


Kada izvršite nadogradnju na Microsoft SQL Server 2019 CU2, ali pre nadogradnje na CU5, trebalo bi ponovo da proverite da li UDF ispunjava uslove za usmeravanje. Da biste to uradili, osvežite UDF-ove koji ispunjavaju uslove putem bilo kojih od sledećih metoda:

Sledeća skripta generiše skriptu za osvežavanje metapodataka za postojeće uvučene uDF-ove:

/*

Generates a script that can be used to refresh all active inlineable scalar UDFs.

Note The sp_refreshsqlmodule command does not affect any permissions, extended properties, or SET options that are associated with the object.

*/

SELECT 'EXECUTE sys.sp_refreshsqlmodule ''[' + OBJECT_SCHEMA_NAME(object_id) + +'].' + '[' + OBJECT_NAME(object_id)

+ ']'';' AS 'RefreshStatement'

FROM sys.sql_modules

WHERE is_inlineable = 1

AND inline_type = 1;

GO

Beleške Kada izvršite nadogradnju na Microsoft SQL Server 2019 CU5, automatski ćemo tokom prevođenja automatski izvedeni umetnuti UDF.

Rezoluciju

Ovaj problem je rešen u sledećoj kumulativnom ažuriranju za SQL Server:

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Reference

Saznajte više o terminologiji koju Microsoft koristi za opisivanja softverskih ispravki.

Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×