请查看我创建的代码。第一个块是我创建的存储过程。
第二个块是我手动运行代码,绕过存储过程。
第三个块是我使用存储过程运行代码。
当我在没有存储过程的情况下运行代码时,我得到了结果。当我通过存储过程运行代码时,我得不到任何东西,即使它可能是相同的代码。
ALTER PROCEDURE [dbo].[uspCheckSaleVIN]
@VIN nvarchar(17)
AS
SELECT *
FROM Sales
WHERE VIN = @VIN
SELECT *
FROM Sales
WHERE (VIN = 09872345098723457)
GO
uspCheckSaleVIN 09872345098723457
答案 0 :(得分:2)
这样做:
uspCheckSaleVIN '09872345098723457'
这是因为09872345098723457是数字,前导零只是从文字中截断。当然,只有当你的前导数字非零时才会起作用。
证明:
CREATE PROCEDURE test
@p VARCHAR(5)
AS
SELECT @p
GO
EXEC test 01234
EXEC test '01234'
输出:
1234
01234