存储过程提示 消息 102,级别 15,状态 1,Incorrect syntax near '@sql'.
时间:2022-11-22 22:53:12
create proc VS
as
begin
declare @sql nvarchar(max)
declare @Site nvarchar(50)
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
if (len(@Site)=0)
begin
@sql+=@Site //提示这一行有误
end
if(len(@pono)=0 )
begin
@sql+=@pono //提示这一行有误
end
if(len(@applier)=0 )
begin
@sql+=@applier //提示这一行有误
end
if(len(@number)=0 )
begin
@sql+=@number //提示这一行有误
end
if(len(@state)=0)
begin
@sql+=@state //提示这一行有误
end
if(len(@person)=0)
begin
@sql+=@person //提示这一行有误
end
不知道是何原因啊,求教。
9 个解决方案
#1
先改你其中一个地方,占这位置
if (len(@Site)=0) begin set @sql=@Site+@sql end
#2
语法写错了,你那个不是SQL server的语法哦
#3
create proc VS
as
begin
declare @sql nvarchar(max)
declare @Site nvarchar(50)
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
if (len(@Site)=0)
begin
set @sql=@sql+@Site --提示这一行有误
end
end
赋值要用set
#4
好了,完整改下,可直接执行:
create proc VS as begin declare @sql nvarchar(max) declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) if (len(@Site)=0) begin set @sql=@sql+@Site end if(len(@pono)=0 ) begin set @sql=@sql+@pono end if(len(@applier)=0 ) begin set @sql=@sql+@applier end if(len(@number)=0 ) begin set @sql=@sql+@number end if(len(@state)=0) begin set @sql=@sql+@state end if(len(@person)=0) begin set @sql=@sql+@person end end
结果:
“命令已成功完成。
”
#5
全部前面加个set
create proc VS as begin declare @sql nvarchar(max) declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) if (len(@Site)=0) begin set @sql+=@Site //提示这一行有误 end if(len(@pono)=0 ) begin set @sql+=@pono //提示这一行有误
end if(len(@applier)=0 ) begin set @sql+=@applier //提示这一行有误
end if(len(@number)=0 ) begin set @sql+=@number //提示这一行有误
end if(len(@state)=0) begin set @sql+=@state
end if(len(@person)=0) begin
set @sql+=@person
end
#6
我该了下:
create proc VS
declare @Site nvarchar(50) //Incorrect syntax near the keyword 'declare'.
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
as //Incorrect syntax near the keyword 'as'.
begin
declare @sql nvarchar(max)
set @sql=''
if (len(@Site)=0)
begin
set @sql=@Site+@sql
end
if(len(@pono)=0 )
begin
这个怎么回事
#7
set是赋值
#8
create proc VS as begin declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) declare @sql nvarchar(max) set @sql='' if (len(@Site)=0) begin set @sql=@Site+@sql end end
#9
create proc VS as begin declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) declare @sql nvarchar(max) set @sql='' if (len(@Site)=0) begin set @sql=@Site+@sql end end
#1
先改你其中一个地方,占这位置
if (len(@Site)=0) begin set @sql=@Site+@sql end
#2
语法写错了,你那个不是SQL server的语法哦
#3
create proc VS
as
begin
declare @sql nvarchar(max)
declare @Site nvarchar(50)
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
if (len(@Site)=0)
begin
set @sql=@sql+@Site --提示这一行有误
end
end
赋值要用set
#4
好了,完整改下,可直接执行:
create proc VS as begin declare @sql nvarchar(max) declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) if (len(@Site)=0) begin set @sql=@sql+@Site end if(len(@pono)=0 ) begin set @sql=@sql+@pono end if(len(@applier)=0 ) begin set @sql=@sql+@applier end if(len(@number)=0 ) begin set @sql=@sql+@number end if(len(@state)=0) begin set @sql=@sql+@state end if(len(@person)=0) begin set @sql=@sql+@person end end
结果:
“命令已成功完成。
”
#5
全部前面加个set
create proc VS as begin declare @sql nvarchar(max) declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) if (len(@Site)=0) begin set @sql+=@Site //提示这一行有误 end if(len(@pono)=0 ) begin set @sql+=@pono //提示这一行有误
end if(len(@applier)=0 ) begin set @sql+=@applier //提示这一行有误
end if(len(@number)=0 ) begin set @sql+=@number //提示这一行有误
end if(len(@state)=0) begin set @sql+=@state
end if(len(@person)=0) begin
set @sql+=@person
end
#6
语法写错了,你那个不是SQL server的语法哦
create proc VS
as
begin
declare @sql nvarchar(max)
declare @Site nvarchar(50)
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
if (len(@Site)=0)
begin
set @sql=@sql+@Site --提示这一行有误
end
end
赋值要用set
我该了下:
create proc VS
declare @Site nvarchar(50) //Incorrect syntax near the keyword 'declare'.
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
as //Incorrect syntax near the keyword 'as'.
begin
declare @sql nvarchar(max)
set @sql=''
if (len(@Site)=0)
begin
set @sql=@Site+@sql
end
if(len(@pono)=0 )
begin
这个怎么回事
#7
set是赋值
#8
create proc VS as begin declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) declare @sql nvarchar(max) set @sql='' if (len(@Site)=0) begin set @sql=@Site+@sql end end
#9
语法写错了,你那个不是SQL server的语法哦
create proc VS
as
begin
declare @sql nvarchar(max)
declare @Site nvarchar(50)
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
if (len(@Site)=0)
begin
set @sql=@sql+@Site --提示这一行有误
end
end
赋值要用set
我该了下:
create proc VS
declare @Site nvarchar(50) //Incorrect syntax near the keyword 'declare'.
declare @pono nvarchar(300)
declare @applier nvarchar(max)
declare @number nvarchar(300)
declare @state nvarchar(50)
declare @person nvarchar(100)
as //Incorrect syntax near the keyword 'as'.
begin
declare @sql nvarchar(max)
set @sql=''
if (len(@Site)=0)
begin
set @sql=@Site+@sql
end
if(len(@pono)=0 )
begin
这个怎么回事
create proc VS as begin declare @Site nvarchar(50) declare @pono nvarchar(300) declare @applier nvarchar(max) declare @number nvarchar(300) declare @state nvarchar(50) declare @person nvarchar(100) declare @sql nvarchar(max) set @sql='' if (len(@Site)=0) begin set @sql=@Site+@sql end end