【发布时间】:2013-05-22 11:51:20
【问题描述】:
我正在尝试在我的数据库中创建一些随机数据,正如您从下面的代码中看到的那样,我的订单号工作正常,我的订单日期也是如此,但我无法让我的 OrderLineNumber 工作,我希望它从 001 开始并且运行 10000 行并以 100 行结束。我认为这是一个简单的答案,但我就是想不通。
DECLARE @OrderNumber varchar (30)
DECLARE @OrderDate int
DECLARE @OrderLineNumber varchar(50)
SET @OrderNumber = 1
SET @OrderDate = 0
SET @OrderLineNumber = 001
WHILE @OrderNumber <= 100
WHILE @OrderDate <= 100
WHILE @OrderLineNumber <= 100
BEGIN
INSERT INTO Orders (OrderNumber, OrderDate, OrderLineNumber)
SELECT 'ORD' + Right ('000000' + CAST (@OrderNumber AS varchar (30)), 6),
DATEADD (day, CAST (RAND () * 1500 as int), '2008-1-1'),
(@OrderLineNumber = 0)
SET @OrderNumber = @OrderNumber + 1
SET @OrderDate = @OrderDate + 1
SET @OrderLineNumber = @OrderLineNumber +1
END
【问题讨论】:
-
稍微相关:查看github.com/fzaninotto/Faker。相关:该程序的当前结果是什么?
-
嘿,jtavares,前两列填充第三列没有。
-
你没有声明第三列
(OrderNumber, OrderDate) -
我现在有,但我收到以下错误消息 - Msg 102, Level 15, State 1, Line 17 '=' 附近的语法不正确。
-
为什么会有那个=?不应该只是
(@OrderLineNumber)吗?
标签: sql sql-server tsql