2011-01-13 10 views
3
exec master..xp_cmdshell 'set' 

Ich muss das temporäre OS-Verzeichnis abrufen, ohne auf xp_cmdshell zurückgreifen zu müssen. Ich benutze MSSQL 2008. Wie kann ich das am besten machen?SQL Server Temp Dir?

Nun, es scheint, als ob es keine Möglichkeit gibt, das von TSQL zu tun. Ich glaube, dass SQL Server von% temp% weiß, weil es es verwenden muss, aber gut.

Nun kann jemand eine Möglichkeit empfehlen, diesen Code kompakter/enger zu machen?

Set NoCount On 
Declare @t VarChar(256) 
Declare @env Table ([Parts] VarChar(256)) 
Insert Into @env 
Exec Master..Xp_CmdShell 'set' 
Set @t = ( Select Top 1 [Parts] From @env Where [Parts] Like 'temp=%' ) 
Select Replace(@t , 'temp=','') 

Danke.

Antwort

1

Der Speicherort der Datei von der Tempdb-Datenbank verwendet wird, kann schnell durch Ausführen

execute tempdb.dbo.sp_helpfile 

(edit)

... das ist nicht das, was Sie suchen ist zu finden, oder? Abgesehen vom Eintauchen in die sp_OA-Prozeduren glaube ich nicht, dass es eine einfache Möglichkeit gibt, auf OS-Informationen dieser Art zuzugreifen.

+0

Das erstaunliche ist, dass es nicht abgerufen werden können. Hmmm. – Snowy

2

Sie müssen xp_cmdshell oder eine CLR (nicht sicher von Berechtigungen) verwenden, um die Umgebungsvariablen %TEMP% oder %TMP% zu lesen. Dies gibt Ihnen jedoch den Dienstkontoordner. Die „gemeinsame“ ist %WINIR%\Temp

Das ist nicht etwas, das Sie in der Regel über SQL Tag zu Tag tun würde als Administrator

+0

Kein normaler Fall. Es gibt etwas Datei-Schreiben, das läuft und anstatt Dinge über Laufwerke anzunehmen, würde ich gerne das Temp-Verzeichnis verwenden, da ich weiß, dass der Pfad ein wenig Platz für Dump-Dateien hat. Ich bin sicher, dass MSSQL das OS-Temp-Verzeichnis verwendet, wenn es nötig ist, ich würde es auch gerne verwenden. – Snowy

+0

(zurück aus dem Urlaub) Darauf basierend klingt es, als könnten Sie Ihre datenbankspezifischen Dateien an der gleichen Stelle wie die Tempdb-Dateien ablegen. Der wichtigste Faktor ist hier: Muss außer Ihrem SQL-Prozess noch irgendjemand Zugriff auf diese Dateien haben? –

1
+0

Beachten Sie, dass [Nur-Link-Antworten] (http://meta.stackoverflow.com/tags/link-only-answers/info) nicht empfohlen werden. SO-Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (vs. ein weiterer Zwischenstopp von Referenzen, die im Laufe der Zeit abgestanden werden). Bitte beachten Sie, dass Sie hier eine eigenständige Zusammenfassung hinzufügen und den Link als Referenz beibehalten. – kleopatra

Verwandte Themen