Ich versuche, eine gespeicherte Prozedur zu erstellen, die eine Zeichenfolge mit den Werten einer bestimmten Spalte erhält, die ich will und dann eine Zeile für jeden Wert, geteilt durch "," .Wie führe ich eine INSERT in SQL Server aus einer Zeichenfolge mit einer bestimmten Spalte
Zum Beispiel:
--The string I mentioned
@Objectid = '15, 21, 23, 53'.
--Then I wish to insert those values into a table like for instance
#Result(ID bigint, AppID bigint, ObjectID bigint)
So wollte ich einen Einsatz auf dieser Tabelle durchzuführen, und stellen Sie die Werte jedes @Objectid auf eine andere Reihe von #result und auf der Spalte ObjektID, während Gleichzeitig füllte ich andere Spalten mit Werten, die ich in Variablen auf derselben gespeicherten Prozedur gespeichert habe. Gibt es eine Möglichkeit, dies zu tun? Und wenn ja, gibt es eine Möglichkeit, dies ohne die Verwendung eines Cursors zu tun?
verwenden, um einen Tabellenwertparameter und Split in Code vor –
proc vorbei Gibt es Möglichkeiten, in SQL einen String aufzuteilen (zB wenn durch ein Komma delimeted) - haben einen Blick auf [bestehende Q & A] (http://stackoverflow.com/search?q=%23sql-server+split+a+string). Es wäre jedoch viel besser, wenn Sie Ihre IDs vorher teilen können. Sie benötigen keinen 'CURSOR', müssen aber wahrscheinlich eine' WHILE'-Schleife verwenden, um die INSERT-Anweisung mehrmals auszuführen. Was ist Ihr Quellsystem (wie erhalten Sie die Liste der Ids)? – Serge
Welche Version von SQL Server? Im Jahr 2016 gibt es die Funktion STRING_SPLIT, die Sie verwenden können – Kostis