Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 创建随机数据_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 创建随机数据

Sql 创建随机数据,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试在我的数据库中创建一些随机数据,正如您从下面的代码中看到的,我的订单号工作正常,我的订单日期也正常,但我无法使我的订单行号正常工作,我希望它从001开始运行100行,然后在100结束。我想这是一个简单的答案,但我就是想不出来 DECLARE @OrderNumber varchar (30) DECLARE @OrderDate int DECLARE @OrderLineNumber varchar(50) SET @OrderNumber = 1 SET @OrderDate =

我正在尝试在我的数据库中创建一些随机数据,正如您从下面的代码中看到的,我的订单号工作正常,我的订单日期也正常,但我无法使我的订单行号正常工作,我希望它从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
DECLARE@OrderNumber varchar(30)
声明@OrderDate int
声明@OrderLineNumber varchar(50)
设置@OrderNumber=1
设置@OrderDate=0
设置@OrderLineNumber=001
当@OrderNumber时,试试这个-

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
DECLARE@OrderNumber VARCHAR(30)
声明@OrderDate INT
声明@OrderLineNumber VARCHAR(50)
设置@OrderNumber=1
设置@OrderDate=0
设置@OrderLineNumber=001
当@OrderNumber时,试试这个-

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
DECLARE@OrderNumber VARCHAR(30)
声明@OrderDate INT
声明@OrderLineNumber VARCHAR(50)
设置@OrderNumber=1
设置@OrderDate=0
设置@OrderLineNumber=001
而@OrderNumber将语句更改为

选择'ORD'+右('000000'+强制转换(@OrderNumber为varchar(30)),6),
DATEADD(日期,铸造(兰特()*1500为整数),'2008-1-1'),@OrderLineNumber
将语句更改为

选择'ORD'+右('000000'+强制转换(@OrderNumber为varchar(30)),6),
DATEADD(日期,铸造(兰特()*1500为整数),'2008-1-1'),@OrderLineNumber

略微相关:查看此项。相关:该过程的当前结果是什么?嘿,jtavares,前两列填充了第三列。您没有声明第三列
(OrderNumber,OrderDate)
我现在已经声明了,但我收到了以下错误消息-Msg 102,级别15,状态1,第17行“=”附近的语法不正确。为什么会出现“=”?它不应该只是
(@OrderLineNumber)
?稍微相关:看看这个。相关:该过程的当前结果是什么?嘿,jtavares,前两列填充了第三列。您没有声明第三列
(OrderNumber,OrderDate)
我现在已经声明了,但我收到了以下错误消息-Msg 102,级别15,状态1,第17行“=”附近的语法不正确。为什么会出现“=”?它不应该只是
(@OrderLineNumber)