2009-07-24 10 views
1

Ich versuche, Zufallsdaten für meine SQL Server-Datenbank zu generieren. Ich habe eine gespeicherte Prozedur erstellt, die die Länge der zu erzeugenden Zeichenfolge benötigt, aber das Problem ist, dass ich sie nicht innerhalb der insert-Anweisung aufrufen kann.Gespeicherte Prozedur in einer Insert-Anweisung

insert into table1 (varchar_data,int_data) value ((sp_GenerateRandomString 4),CAST(RAND() * 10 AS INT) % 6 + 1) 

auch dies nicht funktioniert

insert into table1 (varchar_data,int_data) select ((sp_GenerateRandomString 4),CAST(RAND() * 10 AS INT) % 6 + 1) 

Antwort

3

sollten Sie verwenden eine benutzerdefinierte Funktion statt einer gespeicherten Prozedur. Eine gespeicherte Prozedur kann nicht in Ausdrücken verwendet werden, aber Funktionen können. http://www.sqlteam.com/article/user-defined-functions

+0

aber UDF erlauben – bjan

+0

UPDATE nicht, warum, dass in diesem Fall ein Problem sein würde @bjan:

Eine gute Einführung ist hier zu finden? –

+0

es ist zwar nicht mit dieser Frage verbunden, aber was ist, wenn Ihr SP eine Update-Anweisung ausführt? – bjan

0
INSERT INTO ... EXEC sp_procedure 
+1

Es funktioniert nicht auf SQL Server 2000, können Sie es bitte mehr erklären – bjan

+0

Dies ist eine schlechte Antwort @Remus. Sie müssen das Problem erklären, das der Fragesteller hat und wie Sie dieses Problem beheben. – thomasfedb