0

次のような SQL Server ストアド プロシージャを作成します。

CREATE PROCEDURE dbo.uspGetCharacterID                             
   (@characterName vchar(1000)) 
as            
   SELECT c.charatcer_full    
   FROM CHARACTER c (nolock)      
   WHERE character_full IN (@characterName)      
   ORDER BY C.characterID

コードから、@charactername私は渡しています -->'Batman in latest movies', 'Superman in latest movies'

しかし、コードではゼロ行を返します。

注: これらの文字列を使用して SQL で同じ選択クエリを実行すると、2 行が正常に返されます。

質問: 要件を満たすには、どのデータ型を使用する必要がありますか?

'Varchar'そして'Text'うまくいきませんでした。

ガイドしてください

ありがとう

4

1 に答える 1

1
CREATE TYPE tp_names AS
        TABLE
        (
        name VARCHAR(1000) NOT NULL
        )

GO

CREATE PROCEDURE
        uspGetCharacterID (@names tp_names READONLY)
AS
        SELECT  c.character_full    
        FROM    CHARACTER c
        WHERE   character_full IN
                (
                SELECT  name
                FROM    @names
                )
        ORDER BY
                characterID

GO

DECLARE @names tp_names

INSERT
INTO    @names
VALUES
        ('Batman in latest movies'),
        ('Superman in latest movies')

EXEC    uspGetCharacterID
                @names = @names
于 2012-06-01T06:45:06.420 に答える