2009-11-24 26 views
35

Esiste un modo per eseguire il debug di una stored procedure su SQL Server 2008?Debug di stored procedure in SQL Server 2008

Ho accesso a SQL Server Management Studio 2008 e Visual Studio 2008 (non sono sicuro se fornisce questa funzionalità).

Generalmente utilizzo il profiler SQL per trovare i parametri passati al proc memorizzato, tuttavia vorrei essere in grado di scorrere la procedura per vedere dove si sta verificando.

È possibile?

Qual è il modo migliore? (in termini di trovare rapidamente la posizione dei bug)

risposta

33

Beh, la risposta è stata proprio di fronte a me per tutto il tempo.

In SQL Server Management Studio 2008 è presente un pulsante Debug nella barra degli strumenti. Impostare un punto di interruzione in una finestra di query per scorrere.

Ho scartato questa funzionalità all'inizio perché non pensavo di passare alla stored procedure, cosa che puoi fare con facilità.

SSMS fa fondamentalmente quello che FinnNK ha menzionato con la procedura dettagliata MSDN ma automaticamente.

Così facile! Grazie per il tuo aiuto FinnNK.

Modifica: Dovrei aggiungere un passaggio in là per trovare la chiamata alla procedura memorizzata con i parametri che ho usato SQL Profiler nel mio database.

+0

Ah, roba eccezionale, nelle rare occasioni in cui eseguo il debug delle routine di database è solitamente nel contesto di un'applicazione - non ho capito che si poteva fare direttamente in SSMS. – FinnNk

+0

C'è un altro strumento utile per eseguire il debug in SQL Server 2008 da qualche parte: è possibile iniziare a registrare quali procedure memorizzate vengono chiamate mentre si sta registrando. Ho dimenticato come si chiama; potrebbe essere abbastanza utile proprio ora. –

+2

Salvavita, amico !!! ;) –

16

Sì, è possibile (purché si disponga almeno della versione professionale di Visual Studio), anche se richiede una piccola configurazione una volta eseguita questa operazione non è molto diversa dal debug codice. MSDN has a basic walkthrough.

+2

Grazie FinnNk, tuttavia questo sta prendendo per sempre per andare avanti, più ho di avere un progetto solo per consentire il debug. Non la mia tazza di tè. – Russell

4
  • Sì, anche se può essere difficile da ottenere il debug di lavoro, soprattutto se si cerca di eseguire il debug di SQL su un server SQL remoto dalla propria macchina di sviluppo.
  • Nel primo caso, suggerirei di farlo prima eseguendo il debug direttamente sul server, se possibile.
  • Accedere al server SQL utilizzando un account con diritti di sysadmin o chiedere al proprio DBA di eseguire questa operazione.
  • Poi, per il proprio account di Windows, creare un 'login' in SQL Server, se non è già presente:

enter image description here

  • tasto destro del mouse l'account> proprietà - garantire che l'accesso è un membro del ruolo 'sysadmin':

enter image description here

  • (assicurarsi inoltre che l'account sia "proprietario" di tutti i database su cui si desidera eseguire il debug degli script (ad es.stored procedure) per:

enter image description here

  • Poi, accedi direttamente sul server SQL utilizzando l'account di Windows.
  • Accesso al server SQL tramite l'autenticazione di Windows (utilizzando l'account appena utilizzato per accedere al server)
  • Ora "Debug" la query in SQL management studio, impostando i breakpoint in base alle esigenze. Si può entrare in stored procedure utilizzando F11:

enter image description here

  • Ecco una guida utile per il debugging:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • Se è necessario eseguire il debug remoto, quindi una volta che hai funzionato questo pezzo, puoi provare a configurare il debug remoto:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

Problemi correlati