Sql Cursorfetch:INTO列表中声明的变量数量必须与选定列的数量匹配[不同的Dup]
当我检查了变量的数量是否正确匹配时,我试图弄清楚为什么SQL会抛出这个错误。它是否与IF语句有关Sql Cursorfetch:INTO列表中声明的变量数量必须与选定列的数量匹配[不同的Dup],sql,sql-server,Sql,Sql Server,当我检查了变量的数量是否正确匹配时,我试图弄清楚为什么SQL会抛出这个错误。它是否与IF语句有关 DECLARE @ServerName VARCHAR(30), @SiteCode VARCHAR(4); DECLARE SiteList CURSOR FAST_FORWARD FOR SELECT Cinema_strServerName, Cinema_strCode FROM tblCinema; OP
DECLARE
@ServerName VARCHAR(30),
@SiteCode VARCHAR(4);
DECLARE SiteList CURSOR FAST_FORWARD
FOR SELECT
Cinema_strServerName,
Cinema_strCode
FROM
tblCinema;
OPEN SiteList;
FETCH NEXT FROM SiteList INTO
@ServerName,
@SiteCode;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Add Server Names To Exclude
IF @ServerName IN ('test')
BEGIN
PRINT 'COPY \\' + @ServerName +
END
FETCH NEXT FROM SiteList INTO @ServerName
END
CLOSE SiteList
DEALLOCATE SiteList
错误:
Cursorfetch:INTO列表中声明的变量数必须与所选列的变量数匹配
在第二次获取中(在循环结束时),您仍然有一个变量:
FETCH NEXT FROM SiteList INTO @ServerName
END
CLOSE SiteList
DEALLOCATE SiteList
为了避免类似这样的错误,我通常对游标使用不同的模式:在第二次获取中(在循环结束时),您仍然有一个变量:
FETCH NEXT FROM SiteList INTO @ServerName
END
CLOSE SiteList
DEALLOCATE SiteList
为了避免类似这样的错误,我通常对游标使用不同的模式: