2009-12-14 14 views

risposta

30

che non è ancora stata implementata secondo questo link Microsoft Connect: Microsoft Connect

+3

[Stessa risposta nel 2012] (http://stackoverflow.com/questions/17610446/how-to-view-data-in-table-variables-during-debugging -session-in-ms-sql-managemen) – qdev76

+74

Non smettere di leggere la gente ... ottima risposta alternativa qui sotto! – bendecko

+1

Ed eccoci nel 2016. Non meglio. Anche il collegamento Connect non funziona più. – dotNET

1

basta usare la query di selezione per visualizzare la varialble tavolo, dove mai si desidera controllare.

http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/

+0

Sì concordato opzione migliore e più veloce. Basta fare questo ed evidenziare ed eseguire solo l'SQL che desideri eseguire se hai bisogno di più controllo. – Jammin

+2

Utilizzare la query di selezione dove, nella finestra di controllo? – Faiz

+0

utilizza la selezione all'interno della procedura o qualsiasi query ad hoc che stai eseguendo – solairaja

0

sono giunto alla conclusione che questo non è possibile senza alcun plugin.

+0

Ho visto alcune anteprime di Visual Studio 2010. Molto elaborato, complesso e dettagliato ... e il dimostratore non sapeva se le tabelle temporanee potevano essere visualizzate in modalità di debug. Forse quando è stato rilasciato, ma non sto trattenendo il respiro. –

+0

Ma ho bisogno di cercare le variabili della tabella ... – Faiz

249
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO) 

Inserire la dichiarazione di cui sopra nel punto in cui si desidera visualizzare il contenuto della tabella. I contenuti della tabella saranno resi come XML nella finestra dei locali, oppure è possibile aggiungere @v alla finestra degli orologi.

enter image description here

+5

Funziona davvero per le variabili di tabella! –

+2

funziona bene –

+1

Questo è sicuramente un lavoro che è abbastanza buono per le tabelle di piccole dimensioni da presentare come XML. – Faiz

13

Questo progetto https://github.com/FilipDeVos/sp_select ha una procedura immagazzinata sp_select che consente di selezionare da una tabella temporanea.

Usage:

exec sp_select 'tempDb..#myTempTable' 

Durante il debug di una stored procedure è possibile aprire una nuova scheda ed eseguire questo comando per visualizzare il contenuto della tabella temporanea.

+5

Ottimo per le tabelle temporanee, ma non per le variabili di tabella – harag

+0

Si blocca anche se c'è una transazione aperta, quindi non serve molto se si utilizza un debug di un test in un framework come tSQLt che apre sempre una transazione su l'inizio del test. – Nathan

0

SQL Server Profiler 2014 elenca il contenuto del parametro del valore di tabella. Potrebbe funzionare anche nelle versioni precedenti. Abilita SP: Avvio o RPC: evento completato nel gruppo Stored Procedures e nella colonna TextData e quando si fa clic sulla voce nel log, si avranno le istruzioni di inserimento per la variabile di tabella. È quindi possibile copiare il testo ed eseguirlo in Management Studio.

Esempio di output:

declare @p1 dbo.TableType 
insert into @p1 values(N'A',N'B') 
insert into @p1 values(N'C',N'D') 

exec uspWhatever @[email protected] 
5

Nel stored procedure creare una tabella temporanea globale ## temptable e scrivere una query di inserimento all'interno della vostra stored procedure che inserisce i dati nella tabella in questa tabella temporanea.

Una volta eseguita questa operazione è possibile controllare il contenuto della tabella temporanea aprendo una nuova finestra di query. Basta usare "seleziona * da ## temptable"

1

Perché non basta selezionare la tabella e visualizzare la variabile in questo modo?

SELECT * FROM @d 
-1

Scusate ragazzi, io sono un po 'in ritardo alla festa, ma per tutti coloro che si imbatte in questa domanda in un secondo momento, ho trovato il modo più semplice per farlo in una stored procedure è quello di:

  1. Creare una nuova query con i parametri della procedura dichiarati e inizializzati nella parte superiore.
  2. Incolla nel corpo della procedura.
  3. Aggiungi una buona query di selezione obsoleta subito dopo l'inizializzazione della tabella con i dati.
  4. Se 3. non è l'ultima istruzione nella procedura, impostare un punto di interruzione sulla stessa linea, avviare il debug e continuare direttamente al punto di interruzione.
  5. Utile !! risposta

di messi19 dovrebbe essere quella accettata IMHO, dal momento che è più semplice di quello mio e fa il lavoro più parte del tempo, ma se siete come me e hanno una variabile di tabella all'interno di un ciclo che si desidera per ispezionare, questo funziona bene senza troppi sforzi o plugin SSMS esterni.

Problemi correlati