为什么我的SQL Server数据库在运行存储过程时不会显示任何结果?

时间:2015-06-19 14:42:03

标签: sql sql-server vb.net stored-procedures

请查看我创建的代码。第一个块是我创建的存储过程。

第二个块是我手动运行代码,绕过存储过程。

第三个块是我使用存储过程运行代码。

当我在没有存储过程的情况下运行代码时,我得到了结果。当我通过存储过程运行代码时,我得不到任何东西,即使它可能是相同的代码。

ALTER PROCEDURE [dbo].[uspCheckSaleVIN] 
    @VIN nvarchar(17)
AS
    SELECT * 
    FROM Sales
    WHERE VIN = @VIN

    SELECT * 
    FROM Sales
    WHERE (VIN = 09872345098723457)
GO

uspCheckSaleVIN 09872345098723457

1 个答案:

答案 0 :(得分:2)

这样做:

uspCheckSaleVIN '09872345098723457'

这是因为09872345098723457是数字,前导零只是从文字中截断。当然,只有当你的前导数字非零时才会起作用。

证明:

CREATE PROCEDURE test
@p VARCHAR(5)
AS

SELECT @p

GO


EXEC test 01234
EXEC test '01234'

输出:

1234
01234