各种SQL Server版本上的代码冲突

Luk*_*eva 0 sql sql-server

我有一个代码插入一行100次.问题是,我的代码适用于SQL Server 2008 R2和2012,但不适用于2005年.我也需要将它与2005一起使用.

这是我的代码:

DECLARE @ctr as INT = 1
WHILE @ctr < 128
BEGIN
INSERT INTO DftRoleModulePermissions (
    RoleId,
    ModuleName,
    CanView,
    CanEdit,
    IsActive,
    UTCDateCreated,
    UTCDateModified,
    StampUserName 
    )
VALUES (
    @ctr,
    'Schedules',
    1,
    1,
    1,
    GetUTCDate(),
    GetUTCDate(),
    ''
    )
SET @ctr += 1
END
Run Code Online (Sandbox Code Playgroud)

小智 7

更改变量声明:

DECLARE @ctr as INT;
set @ctr = 1;
Run Code Online (Sandbox Code Playgroud)

和循环结束时的计数器增量:

Set @ctr = @ctr + 1
Run Code Online (Sandbox Code Playgroud)