我正在尝试在我的数据库中创建一些随机数据,正如您可以从下面的代码中看到我的订单编号工作正常,我的订单日期也是如此,但我无法让OrderLineNumber工作,我希望它启动001和运行100行并以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
答案 0 :(得分:1)
试试这个 -
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 dbo.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 --<--
SELECT @OrderNumber=@OrderNumber+1
, @OrderDate=@OrderDate+1
, @OrderLineNumber=@OrderLineNumber+1
END
答案 1 :(得分:0)
将声明更改为
SELECT 'ORD' + Right ('000000' + CAST (@OrderNumber AS varchar (30)), 6),
DATEADD (day, CAST (RAND () * 1500 as int), '2008-1-1'),@OrderLineNumber