2012-04-17 70 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