sql server 数据库 存储过程 必须声明标量变量 错误
ALTERPROCEDURE[dbo].[AllStatisticsSearch1]@s_StartTimevarchar(50)ASBEGINdeclare@mysql...
ALTER PROCEDURE [dbo].[AllStatisticsSearch1]
@s_StartTime varchar(50)
AS
BEGIN
declare @mysql varchar(5000)
set @mysql='SELECT [UserList].id,PeopleName'
set @mysql=@mysql+' FROM [UserList] left join WarList on WarList.PeopleID = UserList.ID '
set @mysql=@mysql+' and datediff(day,@s_StartTime,WarList.WarDate)>=0'--开始日期
set @mysql=@mysql+'where 1=1'
exec (@mysql)
出错:必须声明标量变量 "@s_StartTime"。 展开
@s_StartTime varchar(50)
AS
BEGIN
declare @mysql varchar(5000)
set @mysql='SELECT [UserList].id,PeopleName'
set @mysql=@mysql+' FROM [UserList] left join WarList on WarList.PeopleID = UserList.ID '
set @mysql=@mysql+' and datediff(day,@s_StartTime,WarList.WarDate)>=0'--开始日期
set @mysql=@mysql+'where 1=1'
exec (@mysql)
出错:必须声明标量变量 "@s_StartTime"。 展开
2个回答
展开全部
1、首先在声明在存储后面的变量要用括号括起来
2、既然begin了,后面就一定要end
3、执行存储过程执行的是存储过程的名,而不是执行你声明得变量
我写了一个简单例子你看一下:
ALTER PROCEDURE proc_stu(
@id int
)
AS
BEGIN
declare @mysql varchar(5000)
set @mysql='SELECT * from student where @id=id'
end
exec proc_stu 2
2、既然begin了,后面就一定要end
3、执行存储过程执行的是存储过程的名,而不是执行你声明得变量
我写了一个简单例子你看一下:
ALTER PROCEDURE proc_stu(
@id int
)
AS
BEGIN
declare @mysql varchar(5000)
set @mysql='SELECT * from student where @id=id'
end
exec proc_stu 2
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询