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

Sql 直接查询返回数据,但内部存储过程查询不返回数据?,sql,sql-server,tsql,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,

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

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
出于某种原因,当我使用
@GroupName
\u MY\u test
通过SSMS测试对话框执行存储过程时,上面的存储过程不会返回数据,尽管如果我直接从不同的查询窗口运行以下查询,会返回数据:

select * 
from AllGroupUsers agu
where agu.[GroupName] like '_MY_TEST' + '%'
知道问题出在哪里吗


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

可能您连接到了不同的数据库?您能解释一下您在这里做什么吗(@GroupName为空OR@MichaelEvanchik如果参数为null,他将返回所有行,如果参数不为null,则仅当GroupName以参数valueSide note@user9393635开头时,我看不出表变量存在任何原因。您是否右键单击该过程并选择了
脚本存储过程作为…
为了确保在DB上实际创建了正确的版本,进行更改并忘记覆盖原始对象的情况并不少见,因为表上没有约束。