2009-07-24 6 views
1

J'essaie de générer des données aléatoires pour ma base de données de serveur sql. J'ai créé une procédure stockée qui prend la longueur de chaîne à générer mais le problème est qu'il ne me permettra pas de l'appeler dans l'instruction d'insertion.Procédure stockée dans une instruction d'insertion

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

aussi cela ne fonctionne pas

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

Répondre

3

Vous devez utiliser une fonction définie par l'utilisateur au lieu d'une procédure stockée. Une procédure stockée ne peut pas être utilisée dans les expressions, mais les fonctions peuvent.

Une bonne introduction se trouvent ici: http://www.sqlteam.com/article/user-defined-functions

+0

mais UDF DonT permettent ACTUALISATION – bjan

+0

@bjan Pourquoi serait-ce un problème dans ce cas? –

+0

n'est pas lié à cette question, mais que se passe-t-il si votre sp est en train d'exécuter une instruction de mise à jour? – bjan

0
INSERT INTO ... EXEC sp_procedure 
+1

Il ne fonctionne pas sur SQL Server 2000, pouvez-vous s'il vous plaît expliquer plus – bjan

+0

Ceci est une mauvaise réponse @Remus. Vous devez expliquer le problème rencontré par le demandeur et comment votre solution corrige ce problème. – thomasfedb

Questions connexes