0

我有一个接受输入为字符串的过程,在过程中我希望参数为整数,请找到以下过程。

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

请帮忙!

4

1 回答 1

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)
于 2013-07-16T21:12:00.593 回答