3

它表示该命令已成功执行,但组织表中没有插入任何值。

DECLARE @now DATETIME
SET @now = GETDATE()
DECLARE @numtoinsert INT
SET @numtoinsert = 100

DECLARE @counter INT
SET @counter = 101
WHILE @counter < @numtoinsert
BEGIN
SET @counter = @counter + 1

INSERT INTO [MVServices].[dbo].[Organization]
       ([Organization_Id]
       ,[Business_Number]
       ,[Legal_Name]
       ,[Common_Name]
       ,[Operating_As]
       ,[Sort_Name]
       ,[Effective_Date]
       ,[Expiry_Date]
       ,[Created_By]
       ,[Created_Date]
       ,[Last_Changed_By]
       ,[Update_Date])
 VALUES
       (@counter
       ,1234
       ,'ABC Construction'
       ,'ABC'
       ,'ABC Construction'
       ,'ABC Construction'
       ,@now
       ,null
       ,'seed'
       ,@now
       ,null
       ,null)

       END
4

4 回答 4

9

它不会插入任何内容,因为您的WHILE条件是:

WHILE @counter < @numtoinsert 

并且 101 > 100,所以它永远不会进入循环。

于 2012-04-16T13:58:44.423 回答
3

那是因为你插入的记录只要@counter < @numtoinsert, 和@counter101 一样,它永远不会小于@numtoinsert100。

于 2012-04-16T14:00:20.290 回答
2

您有两个变量,如下所示:

SET @numtoinsert = 100
SET @counter = 101 

然后插入语句在一个while循环中:

WHILE @counter < @numtoinsert

counter 不大于 numtoinsert 开始,因此不执行插入语句。

于 2012-04-16T14:00:52.427 回答
1

你的逻辑不正确:

SET @numtoinsert = 100
SET @counter = 101

WHILE @counter < @numtoinsert

你是说:

WHILE 101 IS SMALLER THAN 100

这评估为 false,因此您永远不会进入 while 循环。

于 2012-04-16T14:03:56.577 回答