Speichern einer Variablen (Max Einträge einer Tabelle)

radiomagazin

Benutzer
Beiträge
19
Kann mir bitte jemand verraten, wie ich auf einfache Art und Weise,
die maxumale Anzahl der Zeilen einer Tabelle "Documente" als Variable
speichern kann um diese später weiter zu vernwenden ?
 
Werbung:
Vermutlich wirst Du das nicht hören wollen, aber Deine Idee ist schon falsch, weil zwischen Ermittlung der Zeilenanzahl, Speicherung in einer Variablen und dem späteren Zugriff das schon wieder veraltet sein kann.
 
Werbung:
Für alle die es interessiert hier der Code von dem was ja angeblich nicht geht :)

use Datenbank
DECLARE @RowNumber INT;
IF OBJECT_ID('AA_Test') IS NOT NULL DROP TABLE AA_Test -- löschen Tabelle 'AA_Test' wenn diese existiert
SELECT ROW_NUMBER() OVER (ORDER BY dbo.Documents.CONTACT) as RowNumber, -- Zeilennummer in Tabelle schreiben (vergeben)
Verzeichnis, Altdatei, Neudatei -- Felder die in die Datei geschrieben werden sollen
INTO AA_Test FROM Documents -- kopieren in AA_Test von Documents
where DESCRIPTION like '%%' and Name like '%%'
DECLARE @variable nvarchar(255);DECLARE @cnt INT = 1; DECLARE @max INT; -- Variablen für "Variable", "Min", "Max" Zeileneinträge für den Loop
DECLARE @DBName sysname; DECLARE @DataPath nvarchar(500); DECLARE @DirTree TABLE (subdirectory nvarchar(255), depth INT) -- Variablen für Ordneranlage
set @max = (select sum([rows]+1) from sys.partitions where object_id=object_id('AA_Test') and index_id in (0,1)); -- Max Einträge in Variable @max schreiben
WHILE @cnt < @max
BEGIN -- Start des Loop
set @variable = (select Verzeichnis from AA_Test where rownumber = @cnt); -- Auslesen des Wertes "Verzeichnis" Aus Zeile 1
SET @DBName = @variable
SET @DataPath = 'X:\OneDrive\Dokumente\' + @DBName -- Ordnerpfad angeben in dem das Verzeichnis angelegt werden soll
IF NOT EXISTS (SELECT 1 FROM @DirTree WHERE subdirectory = @DBName)
EXEC master.dbo.xp_create_subdir @DataPath -- Neuanlage des Verzeichnisses
SET @cnt = @cnt + 1; -- Zeilennummer um 1 erhöhen und nach Zeile 12 springen
END;
PRINT 'Erledigt';
GO
DROP TABLE AA_Test -- löschen der Tabelle AA_Test die Zur Erzeugung der Zeilennummern erzeugt wurden
 
Zurück
Oben