必须声明标量变量“@numCount”
Must declare the scalar variable "@numCount"
当我在循环外进行侧投工作时出现此错误。
Msg 137, Level 15, State 2, Line 2
Must declare the scalar variable "@numCount"
你能告诉我我做错了什么吗??
谢谢
create table #myTemp
(
rowid int identity (1,1),
Name varchar(200),
email varchar(200),
flag bit
)
select * from #myTemp
declare @name varchar(200), @email varchar(200)
declare @numCount int = 20
WHILE (1 <= @numCount)
BEGIN
SET @name = 'My Name '+ CAST(@numCount AS VARCHAR)
SET @email = 'Email'+ CAST(@numCount AS VARCHAR)
INSERT INTO #myTemp(Name, Email, flag)
VALUES (@name, @email, 1)
SET @numCount = @numCount - 1
END
GO
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'
您不能像这样同时声明和初始化一个变量:
declare @numCount int = 20
改为执行以下操作:
declare @numCount int;
SET @numCount = 20;
它必须让您的变量只能在您的批处理中访问。去掉 "GO"。它应该有效。
create table #myTemp (rowid int identity (1,1), Name varchar(200),email varchar(200),flag bit)
select * from #myTemp
declare @name varchar(200),@email varchar(200)
declare @numCount int = 20
while (1 <= @numCount)
begin
SET @name = 'My Name '+ CAST(@numCount AS VARCHAR)
SET @email = 'Email'+ CAST(@numCount AS VARCHAR)
INSERT INTO #myTemp
(Name,Email,flag)
values
(@name,@email,1)
SET @numCount = @numCount - 1
END
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'
在同一语句中声明和设置在 SQL Server 2008 R2 中完全有效。问题是你的 GO
GO -- < -- starts a new batch and thus the declaration on @NumCount is totally unrealted to this Print.
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'
当我在循环外进行侧投工作时出现此错误。
Msg 137, Level 15, State 2, Line 2
Must declare the scalar variable "@numCount"
你能告诉我我做错了什么吗??
谢谢
create table #myTemp
(
rowid int identity (1,1),
Name varchar(200),
email varchar(200),
flag bit
)
select * from #myTemp
declare @name varchar(200), @email varchar(200)
declare @numCount int = 20
WHILE (1 <= @numCount)
BEGIN
SET @name = 'My Name '+ CAST(@numCount AS VARCHAR)
SET @email = 'Email'+ CAST(@numCount AS VARCHAR)
INSERT INTO #myTemp(Name, Email, flag)
VALUES (@name, @email, 1)
SET @numCount = @numCount - 1
END
GO
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'
您不能像这样同时声明和初始化一个变量:
declare @numCount int = 20
改为执行以下操作:
declare @numCount int;
SET @numCount = 20;
它必须让您的变量只能在您的批处理中访问。去掉 "GO"。它应该有效。
create table #myTemp (rowid int identity (1,1), Name varchar(200),email varchar(200),flag bit)
select * from #myTemp
declare @name varchar(200),@email varchar(200)
declare @numCount int = 20
while (1 <= @numCount)
begin
SET @name = 'My Name '+ CAST(@numCount AS VARCHAR)
SET @email = 'Email'+ CAST(@numCount AS VARCHAR)
INSERT INTO #myTemp
(Name,Email,flag)
values
(@name,@email,1)
SET @numCount = @numCount - 1
END
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'
在同一语句中声明和设置在 SQL Server 2008 R2 中完全有效。问题是你的 GO
GO -- < -- starts a new batch and thus the declaration on @NumCount is totally unrealted to this Print.
PRINT 'My String' + CAST(@numCount AS VARCHAR) + '***'