| 

.NET C# Java Javascript Exception

1
Hi!

Ich habe eine SP in MSSQL, die mehrere Ergebnisse einer Spalte sortiert ausgibt.
Diese hätte ich jetzt gern in dieser Sortierung in einer Variable stehen.

Also:
@ergebniss = Zeile 1 + Zeile 2 + Zeile 3 + ... + Zeile n

Kann mir jemand kurz auf die Sprünge helfen wie ich das in einer SP mache?
06.10.2009
TSc 119 1 3
2 Antworten
2
Meines wissens nach läßt sich das nur über eine Schleife lösen:

declare @varibale varchar(1000) set @varibale = ''

declare @hilfsvaribale varchar(1000)
DECLARE Cursor1 CURSOR FOR
select a_spalte from tabelle
OPEN Cursor1
FETCH NEXT FROM Cursor1 INTO @hilfsvaribale
WHILE @@FETCH_STATUS = 0
BEGIN
set @varibale = @varibale + @hilfsvaribale
FETCH NEXT FROM Cursor1 INTO @hilfsvaribale
END
CLOSE Cursor1
DEALLOCATE Cursor1

select @varibale [Ergebniss]


Nachtrag:

Wobei, eine Alternative fällt mir ein: Es gibt eine Möglichkeit .Net-Code direkt im MSSQL-Server auszuführen. Alles wichtige hierzu erfährst du in diesem Guides:
Writing CLR Stored Procedures in C# - Introduction to C# (Part 1)
Writing CLR Stored Procedures in C# - Returning Data (Part 2)
Introducing CLR Stored Procedures in SQL Server 2005
MSDN - CLR Stored Procedures

Der Guides sind leider in englisch.
06.10.2009
Floyd 11,0k 3 9
Floyd 11,0k 3 9
Grundsätzlich funktioniert es, nur das ich nur die erste Zeile in @variable habe...

Ich experimentiere noch.
TSc 06.10.2009
Bei mir hats mit 10 Zeilen funktioniert. Wichtig ist das ich @varibale und @hilfsvaribale nur mit 1000 Zeichen deklariert habe.
Floyd 06.10.2009
Ein RTrIMM hats gerichtet:
set @varibale = @varibale + rtrim(@hilfsvaribale)

Vielen Dank!
TSc 06.10.2009
-1
Du kriegst doch bestimmt sowas wie ein ResultSet (Java) zurück. Darüber kannst du doch iterieren und dir in deine Liste basteln.
Welche Sprache benutzt du eigentlich? PHP, C, Java?
06.10.2009
Vayu 646 1 3
Die Sprache ist T-SQL und er will es laut Frage in einer Stored Procedure erledigen.
gfoidl 06.10.2009
Keine Sprache, MSSQL direkt in einer Stored Procedure.
TSc 06.10.2009
ich hatte die frage so verstanden (auch im bezug auf seine letzte frage), dass er die SP von irgendwo aufruft und die Zeilen aus dem ResultSet herausziehen möchte
Vayu 06.10.2009
Er will das Ergebniss in einer SQL-Variable stehen habe (MSSQL als Datenbank-Server). Da ist es egal ob er PHP, C oder Java verwendet. (Zumal ich die auch nicht brauchen würde weil man Querys auch mit einem Query-Editor schreiben und ausführen kann .. z.B. phpMyAdmin, SQL Query Analyser, MSSQL Managment Studio etc)
Floyd 06.10.2009
Gfoidl und Floyd liegen richtig.
Und natürlich ist es T-SQL und nicht, wie ich kommentierte "keine sprache". Wird Zeit für den Feierabend. :)

Und gearbeitet wird mit dem MSSQL Managment Studio.
TSc 06.10.2009

Stelle deine Java-Frage jetzt!