谁能解释为什么我在下面的 EXEC 语句中出现语法错误?如果我将 EXEC 更改为 PRINT,语法看起来很完美。
use BillingTracking
DECLARE @MyCursor CURSOR;
DECLARE @User varchar(100);
BEGIN
SET @MyCursor = CURSOR FOR
select SqlUser from dbo.tbl_Users order by SqlUser
OPEN @MyCursor
FETCH NEXT FROM @MyCursor
INTO @USer
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('GRANT INSERT ON dbo.tbl_Audit TO ' + '[' + @User) + ']'
FETCH NEXT FROM @MyCursor
INTO @User
END;
CLOSE @MyCursor ;
DEALLOCATE @MyCursor;
END;
我得到的错误是: 消息 102,级别 15,状态 1,第 16 行 “+”附近的语法不正确。
我尝试在几个地方使用 quotename 函数,但我仍然得到错误。