Sql server 存储过程不返回数据
我有以下存储过程。这很简单Sql server 存储过程不返回数据,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我有以下存储过程。这很简单 ALTER PROCEDURE [dbo].[SPU_IsoSearch] @searchby varchar(4), @userinput varchar(25) AS IF(@userinput IS NOT NULL) BEGIN if(@searchby = 'fname') BEGIN SET NOCOUNT ON; SELECT CustID, CustFirstName, CustLastName, CustCit
ALTER PROCEDURE [dbo].[SPU_IsoSearch]
@searchby varchar(4),
@userinput varchar(25)
AS
IF(@userinput IS NOT NULL)
BEGIN
if(@searchby = 'fname')
BEGIN
SET NOCOUNT ON;
SELECT CustID, CustFirstName, CustLastName, CustCity, CustEmail
FROM Customers where CustFirstName like '%' + @userinput + '%'
ORDER BY CustFirstName
END
END
然后,我执行它:
exec spu_isoSearch 'fname','de'
它不返回任何内容,只返回一条消息“Command(s)completed successfully”
但如果我只是写:
select * from Customers where CustFirstName like '%de%'
我会得到数据的
我做错了什么
谢谢您的参数“searchby”是varchar(4),请尝试更改为varchar(5)或适当的长度
由于声明为varchar(4),if语句将“fnam”与“fname”进行比较,并且由于两者不相等,select语句不会执行。如果参数“searchby”是varchar(4),请尝试更改为varchar(5)或适当的长度
由于声明为varchar(4),if语句将“fnam”与“fname”进行比较,并且由于两者不相等,select语句不会执行。如果参数“searchby”是varchar(4),请尝试更改为varchar(5)或适当的长度
由于声明为varchar(4),if语句将“fnam”与“fname”进行比较,并且由于两者不相等,select语句不会执行。如果参数“searchby”是varchar(4),请尝试更改为varchar(5)或适当的长度 由于声明为varchar(4),if语句将“fnam”与“fname”进行比较,并且由于两者不相等,select语句不会执行,因为Ghost(用户)提到了参数长度,另外注意,您的过程可以进行类似的清理
ALTER PROCEDURE [dbo].[SPU_IsoSearch]
@searchby varchar(5), --<-- As pointed out by OP "Ghost"
@userinput varchar(25)
AS
BEGIN
SET NOCOUNT ON;
IF(@searchby = 'fname' AND @userinput IS NOT NULL)
BEGIN
SELECT CustID, CustFirstName, CustLastName, CustCity, CustEmail
FROM Customers where CustFirstName like '%' + @userinput + '%'
ORDER BY CustFirstName
END
END
ALTER过程[dbo].[SPU_IsoSearch]
@searchby varchar(5),--因为Ghost(用户)已经提到了参数长度,另外,您的过程可以像这样进行清理
ALTER PROCEDURE [dbo].[SPU_IsoSearch]
@searchby varchar(5), --<-- As pointed out by OP "Ghost"
@userinput varchar(25)
AS
BEGIN
SET NOCOUNT ON;
IF(@searchby = 'fname' AND @userinput IS NOT NULL)
BEGIN
SELECT CustID, CustFirstName, CustLastName, CustCity, CustEmail
FROM Customers where CustFirstName like '%' + @userinput + '%'
ORDER BY CustFirstName
END
END
ALTER过程[dbo].[SPU_IsoSearch]
@searchby varchar(5),--因为Ghost(用户)已经提到了参数长度,另外,您的过程可以像这样进行清理
ALTER PROCEDURE [dbo].[SPU_IsoSearch]
@searchby varchar(5), --<-- As pointed out by OP "Ghost"
@userinput varchar(25)
AS
BEGIN
SET NOCOUNT ON;
IF(@searchby = 'fname' AND @userinput IS NOT NULL)
BEGIN
SELECT CustID, CustFirstName, CustLastName, CustCity, CustEmail
FROM Customers where CustFirstName like '%' + @userinput + '%'
ORDER BY CustFirstName
END
END
ALTER过程[dbo].[SPU_IsoSearch]
@searchby varchar(5),--因为Ghost(用户)已经提到了参数长度,另外,您的过程可以像这样进行清理
ALTER PROCEDURE [dbo].[SPU_IsoSearch]
@searchby varchar(5), --<-- As pointed out by OP "Ghost"
@userinput varchar(25)
AS
BEGIN
SET NOCOUNT ON;
IF(@searchby = 'fname' AND @userinput IS NOT NULL)
BEGIN
SELECT CustID, CustFirstName, CustLastName, CustCity, CustEmail
FROM Customers where CustFirstName like '%' + @userinput + '%'
ORDER BY CustFirstName
END
END
ALTER过程[dbo].[SPU_IsoSearch]
@searchby varchar(5)——他们正在检查userinput是否为null,而不是searchbyThank,这很有帮助。甚至都没有看,他们正在检查用户输入是否为空,而不是searchbyThank,这很有帮助。甚至都没有看,他们正在检查用户输入是否为空,而不是searchbyThank,这很有帮助。甚至都没有看,他们正在检查用户输入是否为空,而不是searchbyThank,这很有帮助。连看都没看一眼,谢谢,太多了。我甚至都没看一眼,谢谢你。我甚至都没看一眼,谢谢你。我甚至都没看一眼,谢谢你。连看都没看