直接查询返回数据,但内部存储过程查询不?

时间:2018-04-16 21:10:32

标签: sql sql-server tsql

我有一个存储过程,如下所示:

CREATE PROCEDURE [dbo].[GetGroupUsers]
    @GroupName VARCHAR(500) = NULL
AS
BEGIN
    SET NOCOUNT ON;

    PRINT @GroupName

    -- get group users
    DECLARE @GroupUsers TABLE
        (
            GroupId UNIQUEIDENTIFIER, 
            GroupName VARCHAR(500),
            UserId UNIQUEIDENTIFIER
        )

    INSERT INTO @GroupUsers 
        SELECT
            GroupId, GroupName, UserId
        FROM 
            AllGroupUsers agu
        WHERE 
            (@GroupName IS NULL OR agu.[GroupName] LIKE @GroupName + '%')

    SELECT * FROM @GroupUsers
END

出于某种原因,当我通过SS @GroupName值为_MY_TEST的SSMS测试对话执行时,上面的存储过程不会返回数据,但如果运行以下内容,则会返回数据直接从不同的查询窗口查询:

select * 
from AllGroupUsers agu
where agu.[GroupName] like '_MY_TEST' + '%'

知道问题可能是什么?

print @GroupName命令正在打印预期值,我还尝试将@GroupName类型从VARCHAR(500)更改为NVARCHAR(500),但仍未从存储过程返回任何结果?

0 个答案:

没有答案