必须声明标量变量@PR_Name [英] Must declare the scalar variable @PR_Name
本文介绍了必须声明标量变量@PR_Name的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在此查询中,我收到错误消息必须将@PR_Name声明为标量变量"
有人可以回复吗??
In this query I m getting the error "Must declare @PR_Name as scalar variable "
Can anybody reply????
exec sp_Select_Building_FlatNEW 1,1
select @UserNames =UserName
if exists (select * from sysobjects where xtype='u' and name='#flnDtls')
begin
drop table #flnDtls
end
create table #flnDtls
(UserNames nvarchar(max),
Flat_No varchar(50),
Flat_Id int,
PR_ID int)
insert into #flnDtls exec sp_Select_Building_FlatNEW @SC_ID,@Flat_Id
select * from #flnDtls
--declare @sss nvarchar(max)
set @PR_Name = (select Top 1 UserNames from #flnDtls)
print @PR_Name
if(@Quat=1)
begin
set @sql='SELECT DISTINCT
dbo.iBillHead.BillHeadName, dbo.Society.SCName, CONVERT(varchar(500), dbo.Flat.Flat_No) AS Flat_No, dbo.Building.Building_Name,
dbo.Flat.Flat_Area, dbo.TransMember_BillHead.Trans_Bill_Quat AS Amount, dbo.Building.Building_Id, dbo.Bill_Generation.Bill_No, CONVERT(varchar,
dbo.Bill_Generation.Bill_Date, 103) AS BillDate, SUBSTRING(DATENAME(m, dbo.Bill_Generation.Bill_To_Date), 0, 4) AS FromMonth, SUBSTRING(DATENAME(m,
dbo.Bill_Generation.Bill_From_Date), 0, 4) AS ToMonth, dbo.Society.SCRegDate, dbo.Society.SCAddr, dbo.Society.SCRegNo, dbo.Flat.Flat_Id,
dbo.Bill_Generation.Bill_Id, dbo.Bill_Generation.Total_Amount AS Total, dbo.Bill_Generation.Pending_Amount AS pending, dbo.Bill_Generation.Bill_To_Date,
dbo.Bill_Generation.Bill_From_Date, dbo.Bill_Generation.Due_Date, dbo.Bill_Generation.LateCharge_Amount, dbo.Bill_Generation.Discount,
dbo.Bill_Generation.Bill_Date, dbo.Bill_Generation.Arrears, dbo.Bill_Generation.Grand_Total, dbo.Bill_Generation.Principal_Amount , @PR_Name as Username
FROM dbo.Member INNER JOIN
dbo.Society INNER JOIN
dbo.Flat INNER JOIN
dbo.Building ON dbo.Flat.Building_Id = dbo.Building.Building_Id INNER JOIN
dbo.Member_Flat ON dbo.Flat.Flat_Id = dbo.Member_Flat.Flat_Id ON dbo.Society.SC_ID = dbo.Building.Soc_Id INNER JOIN
dbo.iBillHead INNER JOIN
dbo.TransSoc_BillHead ON dbo.iBillHead.BillHeadID = dbo.TransSoc_BillHead.Trans_BillHeadID INNER JOIN
dbo.TransMember_BillHead ON dbo.iBillHead.BillHeadID = dbo.TransMember_BillHead.Trans_BillHeadID ON
dbo.Society.SC_ID = dbo.TransSoc_BillHead.Trans_SC_ID ON dbo.Member.PR_ID = dbo.Member_Flat.PR_ID AND
dbo.Member.PR_ID = dbo.TransMember_BillHead.Trans_Member_ID INNER JOIN
dbo.Bill_Generation ON dbo.Flat.Flat_Id = dbo.Bill_Generation.Flat_Id
end
exec(@sql)
推荐答案
是的,您收到此错误是因为您应该.在我看来,该错误是不言自明的.它说您必须声明此变量,即使您在代码中进行查找,也可以看到您从未声明过此变量.
Yes, you are getting this error because you should. And in my opinion, the error is self explanatory. It says you have to declare this variable, and even if you do a find in your code, you can see that you never declared this variable.
set @PR_Name = (select Top 1 UserNames from #flnDtls)
print @PR_Name
除此之外,我什至看不到您实际上在任何地方都使用了此变量.我可以这样声明:
Apart from that, I don''t even see that you actually made use of this variable anywhere. I would either declare it some thing like this:
DECLARE @PR_Name NVARCHAR(256)
或删除冗余代码.
Or remove the redundant code.
您正在将值设置为变量@PR_Name,但尚未声明该变量.
Hi,
you are setting the value into the variable @PR_Name but you have not declared that variable.
Declare @PR_Name NVARCHAR(500)
请尝试这个东西.可能是您找到了解决方法.
谢谢,
Viprat
Please try this thing. may be you find the soltion.
Thanks,
Viprat
这篇关于必须声明标量变量@PR_Name的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文