Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

T-SQL Cursor Ergebnisse in eine Varibale

Frage Entwicklung Datenbanken

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

31.10.2012 um 16:53 Uhr, 4253 Aufrufe, 2 Kommentare

Hi,

ich hab hier den SQL Server 2008 R2. Ich möchte ganz gern kopierte aber noch leere Tabellen mit Inhalt füllen über den Insert Befehl.

Jetzt kann man ja nicht einfach den Stern Operator benutzen auch wenn die Spalten Namentlich und vom Datentyp her identisch sind zwischen der Kopie und dem Orginal. Um mir nun die ganze Schreiberei etwas zu vereinfachen dachte ich, das ich mittels:

SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='tab_name'

Die Tabellenspaltennamen in eine Variable zu überführen und die in das Insert Statement zu setzen.

Jetzt dachte ich weiter, ich lese die Spaltennamen zeilenweise aus und hänge die an eine Variable. Damit sowas geht hab ich die Curser Funktion gefunden:

DECLARE @var varchar(max)

DECLARE var_Cursor CURSOR FOR

SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='tab_name'

OPEN var_Cursor;
FETCH NEXT FROM var_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM var_Cursor;
END;
CLOSE var_Cursor;
DEALLOCATE var_Cursor;
GO

Die Anweisung erzeugt dann als Ausgabe die Spaltenanmen der Tabelle. Jedoch ist es mir bisher nicht gelungen das Teilergebnis pro Durchlauf an eine Variable zu binden.

Viell. ist das auch total trivial aber ich seh die Lösung nicht.

Grüße
Mitglied: thaenhusen
01.11.2012, aktualisiert um 07:59 Uhr
Moin.

Irgendwie fehlt die Into Anweisung in Deinem Skript...

01.
DECLARE @column_name varchar(max) 
02.
DECLARE @durchlauf_column_name varchar(max) 
03.
 
04.
DECLARE var_Cursor CURSOR FOR 
05.
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='tab_name' 
06.
OPEN var_Cursor 
07.
 
08.
FETCH NEXT FROM var_Cursor; 
09.
INTO @column_name 
10.
 
11.
WHILE @@FETCH_STATUS = 0 
12.
BEGIN 
13.
    Set @durchlauf_column_name = @column_name 
14.
    print @durchlauf_column_name 
15.
 
16.
    FETCH NEXT FROM var_Cursor 
17.
    INTO @column_name 
18.
END 
19.
CLOSE var_Cursor 
20.
DEALLOCATE var_Cursor 
21.
GO
HTH
MK
Bitte warten ..
Mitglied: ooAlbert
02.11.2012, aktualisiert um 09:52 Uhr
Ich hab das eben ausprobiert und es wird etwas in die Variable geschrieben. Nachdem ich die Durchlaufvariable noch mit einem Startwert versehen habe ließ sich das ganze dann auch aufaddieren das dann eine Zeile mit den Spaltenanmen entstanden ist
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...