2012-04-17 76 views
0

爲什麼SQL不重新分割SplitList?SQL不喜歡單詞SplitList

這是我的代碼和SQL不喜歡單詞SplitList。

消息是 「無效的對象名稱」

Where FirstName IN (Select * from SplitList(@CustomerName, ',')) 
+4

當SplitList是值函數沒有explit架構中的一個表,把它用這種方式: 'dbo.SplitList(@CustomerName,',')' – 2012-04-17 12:51:53

+2

@TimSchmelter - 應該可能是一個答案... – 2012-04-17 12:54:53

回答

3

有沒有像SplitList內置在T-SQL或ANSI SQL。

您正在使用的代碼示例似乎假定您已擁有一個名爲SplitList的用戶定義函數。

如果已經有一個用戶定義的SplitList功能,那麼你可能只需要當你調用它來指定其模式:

WHERE FirstName IN (SELECT * FROM dbo.SplitList(@CustomerName, ',')) 
-- or 
WHERE FirstName IN (SELECT * FROM yourschema.SplitList(@CustomerName, ',')) 
3

如果SplitList是值函數沒有explit架構中的一個表,調用它以這樣的方式

Select * from dbo.SplitList(@CustomerName, ',') 

如果沒有提供架構,SQL Server將承擔dbo是默認模式。

順便說一句,你可以改變一個數據庫對象的這樣的模式:

ALTER SCHEMA [NewSchema] TRANSFER dbo.SplitList 

http://msdn.microsoft.com/en-us/library/ms173423.aspx