SQL が SplitList を調整しないのはなぜですか?
これは私のコードであり、SQL は SplitList という言葉が好きではありません。
メッセージは「無効なオブジェクト名です」
Where FirstName IN (Select * from SplitList(@CustomerName, ','))
SQL が SplitList を調整しないのはなぜですか?
これは私のコードであり、SQL は SplitList という言葉が好きではありません。
メッセージは「無効なオブジェクト名です」
Where FirstName IN (Select * from SplitList(@CustomerName, ','))
SplitList
が明示的なスキーマのないテーブル値関数である場合は、次のように呼び出します。
Select * from dbo.SplitList(@CustomerName, ',')
dbo
スキーマが指定されていない場合、SQLServerはデフォルトのスキーマであると想定します。
ちなみに、データベースオブジェクトのスキーマは次のように変更できます。
ALTER SCHEMA [NewSchema] TRANSFER dbo.SplitList
SplitList
T-SQL や ANSI SQL への組み込みに勝るものはありません。
使用しているコード サンプルは、 というユーザー定義関数が既にあることを前提としているようですSplitList
。
ユーザー定義関数が既にある場合はSplitList
、呼び出すときにそのスキーマを指定するだけでよいでしょう。
WHERE FirstName IN (SELECT * FROM dbo.SplitList(@CustomerName, ','))
-- or
WHERE FirstName IN (SELECT * FROM yourschema.SplitList(@CustomerName, ','))