我有一个接受输入作为字符串的过程,在程序中我希望参数为整数,请找到以下程序。
CREATE PROCEDURE [dbo].[spPERSON_SELECT]
(
@PersonID VARCHAR(MAX) = NULL
)
AS
BEGIN
SELECT PERSON.name
FROM PERSON
WHERE
PERSON.person_id NOT IN (@PersonID)
END
GO
请帮忙!
答案 0 :(得分:1)
您可以将该varchar变量转换为表变量(TSQL的'数组') - 搜索SO,有数十个示例
或使用动态SQL,例如
DECLARE @sSQL varchar(max)
SET @sSQL = 'SELECT PERSON.name FROM PERSON WHERE PERSON.person_id NOT IN '
SET @sSQL = @sSQL + '(' + @PersonID + ')'
EXEC (@sSQL)