2009-07-24 82 views
1

我想为我的sql服务器数据库生成随机数据。我创建了一个存储过程,其中需要生成的字符串的长度,但问题是它不会允许我在插入语句中调用它。插入语句中的存储过程

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

也这是行不通的

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

回答

3

您应该使用用户定义的函数,而不是的存储过程。存储过程不能在表达式中使用,但函数可以。

一个很好的介绍可以在这里找到:http://www.sqlteam.com/article/user-defined-functions

+0

但UDF不容许UPDATE – bjan 2012-11-21 13:22:03

+0

@bjan为什么会在这种情况下,一个问题? – 2012-11-21 22:33:25

+0

虽然它与这个问题没有关系,但是如果你的sp正在执行更新语句呢? – bjan 2012-11-22 06:08:47

0
INSERT INTO ... EXEC sp_procedure 
+1

它不能在sql server 2000上工作,请你解释一下更多 – bjan 2012-11-21 13:21:23

+0

这是一个很差的答案@Remus。你需要解释提问者所面临的问题,以及你的解决方案如何解决这个问题。 – thomasfedb 2013-07-21 08:39:05