我有一个带有 2 个可选参数的存储过程,如下所示。我需要验证可选参数之一@Zip,即我需要确保用户在执行此存储过程时输入了正确的美国邮政编码。我尝试在下面的存储过程中使用正则表达式,但它不起作用。请让我知道我该如何做到这一点?谢谢你。
CREATE PROCEDURE usp_GetDetails
(
@Name varchar(255) = null, @Zip int = null
)
as
begin
SELECT DISTINCT
[Name],[Address1],[Address2],[City],[Zip]
FROM AddressTable
WHERE
( @Name IS NULL
OR AddressTable.[Name] LIKE '%' + @Name + '%'
)
AND ( @Zip IS NULL
OR AddressTable.[Zip] = (RegexMatch (@Zip, '^\d{5}(\-\d{4})?$'))
)