Stored procedures Id列表的StoredProc数据类型

Stored procedures Id列表的StoredProc数据类型,stored-procedures,sql-server-2012,Stored Procedures,Sql Server 2012,如果我想传递ID列表/字符串,例如1、2、5、12、99,我应该在下面的StoredProc中定义什么样的数据类型 create PROCEDURE [dbo].[TABLE_Delete] -- Add the parameters for the stored procedure here @TId datatype = null AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from

如果我想传递ID列表/字符串,例如1、2、5、12、99,我应该在下面的StoredProc中定义什么样的数据类型

create PROCEDURE [dbo].[TABLE_Delete]
    -- Add the parameters for the stored procedure here
    @TId datatype = null
AS
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    delete from dbo.TABLE T where T.Id in (@TId)

END

“我的TId”字段的类型为Int

您需要以nvarcharxx的形式传递数据,例如“1,2,3,4” 然后使用split函数将它们拆分,并将查询编写为

 delete from dbo.TABLE T where T.Id in (dbo.split(@param,','))
这是Split函数的代码

CREATE FUNCTION Split
(
  @delimited nvarchar(max),
  @delimiter nvarchar(100)
) RETURNS @t TABLE
(
-- Id column can be commented out, not required for sql splitting string
  id int identity(1,1), -- I use this column for numbering splitted parts
  val nvarchar(max)
)
AS
BEGIN
  declare @xml xml
  set @xml = N'<root><r>' + replace(@delimited,@delimiter,'</r><r>') + '</r></root>'

  insert into @t(val)
  select
    r.value('.','varchar(max)') as item
  from @xml.nodes('//root/r') as records(r)

  RETURN
END
GO
另一种分裂方式

CREATE FUNCTION [dbo].[fnSplitString] 
( 
    @string NVARCHAR(MAX), 
    @delimiter CHAR(1) 
) 
RETURNS @output TABLE(splitdata NVARCHAR(MAX) 
) 
BEGIN 
    DECLARE @start INT, @end INT 
    SELECT @start = 1, @end = CHARINDEX(@delimiter, @string) 
    WHILE @start < LEN(@string) + 1 BEGIN 
        IF @end = 0  
            SET @end = LEN(@string) + 1

        INSERT INTO @output (splitdata)  
        VALUES(SUBSTRING(@string, @start, @end - @start)) 
        SET @start = @end + 1 
        SET @end = CHARINDEX(@delimiter, @string, @start)

    END 
    RETURN 
END

您从何处调用sp?对于Java应用程序,很抱歉,我没有遵循您在此处所写的内容: