PRB: CONCAT_NULL_YIELDS_NULL SET způsobuje uložené procedury překompilujte

Překlady článku Překlady článku
ID článku: 294942 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Pokud obsahuje uložené procedury příkazu SET CONCAT_NULL_YIELDS_NULL a příkazu změní aktuální nastavení CONCAT_NULL_YIELDS_NULL, postup při každém provedeny zda recompiled. To může vést k problémům s výkonem.

Příčina

Recompilation je vyžadován, protože změna nastavení CONCAT_NULL_YIELDS_NULL změní výsledek a způsob interpretace příkazy. V SQL Server 7.0 a SQL Server 2000 CONCAT_NULL_YIELDS_NULL nastavit on ve výchozím nastavení jsou v souladu s normy ANSI.

Nastavení CONCAT_NULL_YIELDS_NULL OFF v databázi úroveň není přinést požadovaného výsledku protože ODBC a OLE DB tuto vlastnost nastavit na ON při připojení. (Protože to je bitu určen v paketu připojení, SQL Profiler nezobrazuje, je tato vlastnost nastavena.)

Jak potíže obejít

Nenastavujte CONCAT_NULL_YIELDS_NULL uvnitř z uložené procedury. Doporučeným řešením je použití funkce ISNULL Při zřetězení řetězců.

Například dotaz by měl být zapsána následující:
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + ISNULL(@lastname,'') + '%'
				
spíše než takto:
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + @lastname + '%'
				
Ačkoli není doporučeno alternativní řešení by vydat příkazu SET CONCAT_NULL_YIELDS_NULL před provedením uložené procedury.

Další informace

Tento článek adresy pouze jeden důvod, uložené procedury mohou být recompiled; Další informace získáte v článku číslo článku databáze Microsoft Knowledge Base:
243586INF: Odstraňování uložená procedura Recompilation

Vlastnosti

ID článku: 294942 - Poslední aktualizace: 16. října 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Klíčová slova: 
kbmt kbprb KB294942 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:294942

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com