Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Transact-SQL - Temp-Verzeichnis ermitteln

Empfohlene Antworten

Veröffentlicht

Moin Ihr!

Nachdem ich mich schon stundenlang durch die SQL-Hilfe und das Web gesucht habe, dachte ich, daß hier ja vielleicht einer eine Lösung für folgendes Problem hat:

Ich habe ein SQL-Script gebaut, das eine Datenbank komplett von "normalen" alphanummerischen Feldern in die entsprechenden Unicode-Felder umwandelt. Nun möchte ich noch ein Ergebnis als Datei auf dem Server ausgeben. Mit SP_MAKEWEBTASK ist das ja z.B. ganz einfach, allerdings ist mein Problem, daß das Script bei verschiedenen Kunden laufen soll, und dort ja eigentlich immer unterschiedliche Einstellungen bezüglich der Ordnerfreigabe etc bestehen. Ich müsste also irgendwie per SQL-Statement ein Verzeichnis auf dem Server ermitteln können, in das ich die Datei legen darf. Ich dachte da schon an das Temp-Verzeichnis, aber ich finde leider keine Möglichkeit...

Gibt es auf dem MSSQL-Server 2000 überhaupt Möglichkeiten, derartige Dateioperationen per SQL-Statements auszuführen? Und wenn ja, wie löse ich mein Problem?

Bin für jede Hilfe dankbar!

Hi Beeti,

kleiner Lösungsansatz von mir:

Via xp_cmdshell kannst du Shell-Commands absetzen. Mit

exec xp_cmdshell 'echo %SystemRoot%\Temp'

solltest du eigentlich das Temp-Verzeichnis des Systems bekommen. Dorthin kannst du dann auch deine Ausgabe schreiben.

Gruß

Honky

Original geschrieben von Honkytonk

Via xp_cmdshell kannst du Shell-Commands absetzen. Mit

exec xp_cmdshell 'echo %SystemRoot%\Temp'

Das waer dann in etwa ein C:\WinNT\Temp , welches aber nicht unbedingt vorhanden ist, also auch nicht ganz unkritisch.

Es gaebe ja noch das TMP bzw TEMP aus den Umgebungsvariablen, aber daran kommt man vom SQL-Server aus nicht ran, da diese Variablen userspezifisch sind.

Goos

  • Autor
Original geschrieben von Honkytonk

Hi Beeti,

kleiner Lösungsansatz von mir:

Via xp_cmdshell kannst du Shell-Commands absetzen. Mit

exec xp_cmdshell 'echo %SystemRoot%\Temp'

solltest du eigentlich das Temp-Verzeichnis des Systems bekommen. Dorthin kannst du dann auch deine Ausgabe schreiben.

Gruß

Honky

Moin!

Hmm, daran hatte ich garnicht gedacht... - allerdings haben wir zumindest einen Kunden dabei, bei dem mein Script sicherlich nicht das Recht haben wird, die xp_cmdshell auszuführen... - aber der ist eh immer ne Extrawurst, und für die anderen dürfte es funzen...

thx!

Original geschrieben von beetFreeQ

- allerdings haben wir zumindest einen Kunden dabei, bei dem mein Script sicherlich nicht das Recht haben wird, die xp_cmdshell auszuführen... - aber der ist eh immer ne Extrawurst, und für die anderen dürfte es funzen...

thx!

Hmm dann wirst da sicher auch kein xp_regread ausfuehren duerfen nehm ich mal an :D

Das waer naemlich die zweite Loesung um entsprechende Variablen direkt aus der Registry zu holen.

Goos

  • Autor
Original geschrieben von Goos

Das waer dann in etwa ein C:\WinNT\Temp , welches aber nicht unbedingt vorhanden ist, also auch nicht ganz unkritisch.

Es gaebe ja noch das TMP bzw TEMP aus den Umgebungsvariablen, aber daran kommt man vom SQL-Server aus nicht ran, da diese Variablen userspezifisch sind.

Goos

hab ich auch grad gemerkt... - geht also so leider nicht :(...

  • Autor
Original geschrieben von Goos

Hmm dann wirst da sicher auch kein xp_regread ausfuehren duerfen nehm ich mal an :D

Das waer naemlich die zweite Loesung um entsprechende Variablen direkt aus der Registry zu holen.

Goos

Bingo! ;)

Die einzige wirkliche Moeglichkeit die du hast ist wohl dein HTML-File ins Data Verzeichnis deines SQL Servers zu schreiben. Das duerfe so ziemlich das einzige sein, was du immer ermitteln kannst. :D

...andererseits is dein Report so wichtig, dass ihn jeder sehen muss? ;)

Goos

  • Autor
Original geschrieben von Goos

Die einzige wirkliche Moeglichkeit die du hast ist wohl dein HTML-File ins Data Verzeichnis deines SQL Servers zu schreiben. Das duerfe so ziemlich das einzige sein, was du immer ermitteln kannst. :D

...andererseits is dein Report so wichtig, dass ihn jeder sehen muss? ;)

Goos

Hmm, und grad da haben wir in den meisten Fällen keine Schreibrechte ;)... - tja, eigentlich müsste ich mal sehen, ob ich mir den Bericht sonst auch zumailen lassen könnte... - das wäre dann noch die eleganteste Lösung... - immerhin steht da drin, welche Felder nicht angepasst werden konnten, weil andere Objekte davon abhängig sind... - die einzelnen Indizes aus den Tabellen rauszunehmen und nach der Spaltenänderung wieder einzufügen, das war mir dann nämlich doch zuviel Aufwand ;) - aber das muß ja nicht jeder wissen :rolleyes: :floet: :D

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.