在SQL Server中限制存储过程参数的值

Jon*_*son 1 stored-procedures sql-server-2008

有没有办法限制SQL Server 2008中存储过程的参数值?这是一个varchar.例如,我希望它只是'生产','发展'或'QA'.如果有人通过'Prod','Dev','UAT'或其他任何东西,我希望它出错.

Mit*_*dir 5

CREATE PROC SomeProc
  @par VARCHAR(50)
AS
BEGIN

   IF @par NOT IN ('Production', 'Development', 'QA')
     RAISERROR(N'Your Message',16,1)

  -- MORE CODE HERE

END
Run Code Online (Sandbox Code Playgroud)

您可以使用表来查找有效值来扩展解决方案.