Sql 创建随机数据
我正在尝试在我的数据库中创建一些随机数据,正如您从下面的代码中看到的,我的订单号工作正常,我的订单日期也正常,但我无法使我的订单行号正常工作,我希望它从001开始运行100行,然后在100结束。我想这是一个简单的答案,但我就是想不出来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 =
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)
?