我在SQL Server中创建了一个存储函数。当我尝试使用命令文本(例如......)来调用vb.net中的那个。
---- Returning error
lobjCommand.CommandText="Select function_name(value1)"
----- Executing properly without errors
lobjCommand.CommandText="Select dbo.function_name(value1)"
有人可以建议玩魔法的dbo究竟是什么......
提前致谢 Rupesh
答案 0 :(得分:1)
dbo
很可能是您的默认架构。它代表Database Owner。
在SQL查询中运行函数时,需要指定函数所属的模式。
如果不这样做,则可能有两个不同的函数,名称function_name
属于两个不同的模式。如果不提及架构,服务器将无法知道您正在调用哪个函数。
答案 1 :(得分:0)
SQL Server引擎总是将查询解析成碎片,如果你不使用前缀肯定会在使用[dbo]之前搜索具有不同用户的类似名称的对象。我建议你遵循前缀机制,不仅要满足最佳实践,还要避免性能故障并使代码可扩展。
旧问题请参阅此link