PRB: SET CONCAT_NULL_YIELDS_NULL causati stored procedure per la ricompilazione

Traduzione articoli Traduzione articoli
Identificativo articolo: 294942 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

Se una stored procedure contiene l'istruzione SET CONCAT_NULL_YIELDS_NULL e l'istruzione modifica l'impostazione corrente dell'opzione CONCAT_NULL_YIELDS_NULL, la procedura verrà ricompilata ogni volta che che viene eseguita. Questo può causare problemi di prestazioni.

Cause

Ricompilazione è necessaria in quanto di CONCAT_NULL_YIELDS_NULL modifiche apportate alle impostazioni sia il risultato e la modalità di interpretazione che comandi. In SQL Server 7.0 e SQL Server 2000, CONCAT_NULL_YIELDS_NULL è impostata su ON per impostazione predefinita, in base agli standard ANSI.

Impostazione di CONCAT_NULL_YIELDS_NULL su OFF nel database di livello non produce il risultato desiderato poiché ODBC e OLE DB impostata questa proprietà su ON al momento della connessione. (Poiché questo è specificato da un bit nel pacchetto di connessione, SQL Profiler non mostra che questa proprietà viene impostata.)

Workaround

Non impostare CONCAT_NULL_YIELDS_NULL all'interno della stored procedure. La soluzione consigliata è utilizzare la funzione ISNULL durante la concatenazione di stringhe.

Ad esempio, deve essere scritto una query nel modo seguente:
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + ISNULL(@lastname,'') + '%'
				
anziché simile al seguente:
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + @lastname + '%'
				
Sebbene non consigliabile, una soluzione alternativa sarebbe eseguire l'istruzione SET CONCAT_NULL_YIELDS_NULL prima di eseguire la stored procedure.

Informazioni

Questo articolo gli indirizzi di un solo motivo stored procedure potrebbe essere ricompilata; per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
243586INF: Troubleshooting ricompilazione delle stored procedure

Proprietà

Identificativo articolo: 294942 - Ultima modifica: giovedì 16 ottobre 2003 - Revisione: 3.2
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi: 
kbmt kbprb KB294942 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 294942
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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