2011-01-14 3 views
2

I SQL-Suche redgate mit mich für ein Schlüsselwort zu suchen, und einige meiner Ergebnisse wie folgt aussehen:Objekt kann nicht in tempdb finden

Database | Schema | Object name | Type ... 
tempdb | dbo | #6FBF826D | User table ... 

Wie finde ich heraus, was das bedeutet? Ich habe in tempdb.sys.all_objects nachgesehen, aber ein Objekt mit dem Namen '# 6FBF826D' ist nicht drin (obwohl es auch andere mit ähnlichen Namen gibt). Sehe ich an der falschen Stelle?

Was bedeutet in diesem Zusammenhang "user table"? Ich habe keine Tabellen mit solchen Namen erstellt.

+0

Warum tempDB betrachten? Es ist eine Systemdatenbank, die _temporary_ data enthält. – Oded

+0

Benutzertabelle = Keine Systemtabelle. Ich denke Redgate könnte die Namen 'create table #t (i int) select * von tempdb.sys.all_objects order by create_date desc' der eigentliche Objektname ist' #t__________ (lots mehr Unterstriche) ____________________ 000000000003' –

+0

@Martin - nur (AFAIK) temporäre Tabellen erhalten solche Namen. Die meisten anderen temporären Objekte (z. B. Tabellenvariablen) erhalten kürzere Hexadezimalnamen, wie der in diesem Beitrag gezeigte. –

Antwort

3

Als Sie danach suchten, hatte es wahrscheinlich aufgehört zu existieren. Es könnte eine Tabellenvariable gewesen sein (solche Variablen erhalten solche Namen in tempdb) - aber wenn ihr Stapel abgeschlossen war, bevor Sie nach ihm gesucht haben, wäre er automatisch entfernt worden.

Sie sollten sich nie wirklich um Objekte in tempdb kümmern müssen - sie werden von SQL Server verwaltet und nach Bedarf hinzugefügt und entfernt.