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

时间:2013-05-15 13:41:17

标签: 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

1 个答案:

答案 0 :(得分:7)

更改变量声明:

DECLARE @ctr as INT;
set @ctr = 1;

并将循环结束时的计数器增量改为:

Set @ctr = @ctr + 1