我使用连接从两个表中获取通用名称的数据,如
SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints,
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username
但我需要只使用我在存储过程中作为参数传递的用户名来执行此查询。
如何在此连接中传递存储过程中的用户名。
alter procedure GetNameIDUserInformation
(
@user varchar(max)
)
as
begin
SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints,
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username
end
在此SP中,我必须传递用户参数以获取用户记录的单行?
答案 0 :(得分:1)
如果您只是在查询中添加WHERE userValidity.Username=user
会怎样? :
alter procedure GetNameIDUserInformation ( @user varchar(max) ) as
begin
SELECT userValidity.UserName,
userValidity.ValidFrom,userValidity.ValidUpTo,
userValidity.TotalPoints, persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username end
WHERE userValidity.Username=user
如果在user
附近出现语法错误,请考虑使用其他名称,因为user
是某些RDBMS中的保留关键字。