【问题标题】:Creating Random Data创建随机数据
【发布时间】: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


【解决方案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

【讨论】:

    【解决方案2】:

    将语句更改为

    SELECT 'ORD' + Right ('000000' + CAST (@OrderNumber AS varchar (30)), 6),
    DATEADD (day, CAST (RAND () * 1500 as int), '2008-1-1'),@OrderLineNumber
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2018-04-06
      • 2020-02-17
      相关资源
      最近更新 更多