sql必须声明表变量
‘壹’ 必须声明表变量 "@tableName"。
CREATE proc [dbo].[delAllRecord]
as
declare @tableName nvarchar(255)
declare @sql nvarchar(255)
Declare curTable Cursor
for select Table_Name from information_schema.tables where TABLE_TYPE='BASE TABLE'
Open curTable
Fetch Next From curTable Into @tableName
WHILE(@@FETCH_STATUS = 0)
BEGIN
set @Sql = N'delete from '+@tableName
exec sp_executesql @sql
Fetch Next From curTable Into @tableName
end
CLOSE curTable
DEALLOCATE curTable
这样改吧,N'delete from @tableName'这句把@tableName当做了表变量,没法通过字符串赋值。
‘贰’ sql的存储过程,“必须声明表变量 "@tab"。”错哪了啊
update @tab set @col = replace(@col,'6','6')
这里的@TAB 不能是变量
update tablename
‘叁’ 高分求解:SQL存储过程输出参数必须声明标量变量问题
exec('select @totalCount = count(['+ @orderByWhere +']) from '+ @pageTable +' where '+ @pageWhere)
你count 直接count(*) 就可以了...
网上Demo很多你找一个直接用多好
‘肆’ sql server游标使用中的问题,出现“必须声明标量变量”错误提示。谢谢
declarecurcursordynamic
for
select*fromstu
opencur
declare@idint,@namenvarchar(12),@ageint,@sexnvarchar(5),@aint
fetchnextfromcurinto@id,@name,@age,@sex,@a
while@@fetch_status=0
begin
printcast(@idasnvarchar)+@name+cast(@ageasnvarchar)+@sex+cast(@aasnvarchar)
fetchnextfromcurinto@id,@name,@age,@sex,@a
end
closecur
deallocatecur
go
这样吧
int类型的不能直接用+号,必须转成字符型才可以输出,还有,你游标有些地方用的不正确,也没关闭和释放, 所以执行一次后,就会报游标未关闭之类的错
‘伍’ 必须声明表变量 "@indextable" 存储过程中执行动态sql。
具体问什么呢??很明显意思就是你没有声明这个"@indextable变量
‘陆’ SQL用while时提示:必须声明标量变量 "@startmonth"的问题
把GO去掉
select不是输入语句,它是查询语句,你可以select str(id)@name+str(@age)+@sex+str(@a)
这样它会把这个结果计算并以表格形式显示出来,加上str是为了把数字转换为字符,再跟其它字符链接
‘柒’ java动态连接sql数据库的时候com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明表变量 "@P0"。
楼主,你是讲表名作为参数传进去了吗?“必须声明表变量”好像是说你得表名没获取到,没有错误信息和代码不好确定,不过我跟你同样的错误,我的是表名获取的时候用的#{tableName}改成${tableName}就好了。
‘捌’ C#写的SQL语句提示说“必须申明标量变量”!
select 语句中的字段列表中不能使用参数;参数只能出现在where子句中,修改成
……
strSql.Append("SELECTTW_TwitterContent,TW_PhoneModel,1,Organization_ID,Organization_Name,User_ID,USER_NAME,GETDATE(),0FROMView_Base_UserInfoWHEREUser_Phone=@User_Phone");
……
//只有一个参数了
SqlParameter[]parameters={newSqlParameter("@User_Phone",SqlDbType.VarChar,11)};
parameters[0].Value=User_Phone;
……
‘玖’ SQL必须声明标量变量
你的代码太乱啦!我帮你简单改了下
有@NUMBER就更新没有就新增
@rtn为1:表示新增2:为更新
CREATEPROCCUNCHUGUOCHENG
@NUMBERVARCHAR(10),
@rtnINToutput
AS
BEGIN
ifexists(select*=@NUMBER)
begin
=@NUMBERWHERENUMBER=@NUMBER
SET@rtn=2
end
else
begin
(@NUMBER)
SET@rtn=1
end
END
GO
‘拾’ SQL 提示必须声明表变量
Create PROCEDURE [dbo].[ccout]
@lx varchar(10),
@id varchar(30),
@zt varchar(10),
@sjbh varchar(10)
AS
begin
set nocount on
declare @sql nvarchar(500)
declare @int int
if @lx='1'
begin
Set @sql='
With T
As
(
Select Top 1 * From '+@id+' Where 状态=1 Order by newid()
)
Update T Set 状态=2
Output inserted.编号,inserted.账号,inserted.密码 '
end
else
begin
set @sql='update '+@id+' set 状态='+@zt+' where 编号='+@sjbh
end
exec (@sql)
set nocount off
end