来自vb.net的SQL存储函数调用
我在SQLServer中创建了一个存储函数。当我试图用命令文本从vb.net调用它时,比如来自vb.net的SQL存储函数调用,sql,vb.net,sql-server-2008,Sql,Vb.net,Sql Server 2008,我在SQLServer中创建了一个存储函数。当我试图用命令文本从vb.net调用它时,比如 ---- Returning error lobjCommand.CommandText="Select function_name(value1)" ----- Executing properly without errors lobjCommand.CommandText="Select dbo.function_name(value1)" 有人能建议dbo到底在玩什么魔术吗 提前谢谢
---- Returning error
lobjCommand.CommandText="Select function_name(value1)"
----- Executing properly without errors
lobjCommand.CommandText="Select dbo.function_name(value1)"
有人能建议dbo到底在玩什么魔术吗
提前谢谢
Rupesh
dbo
很可能是您的默认模式。它代表
在SQL查询中运行函数时,需要指定函数所属的架构
如果没有,则可能有两个名为
function\u name
的不同函数属于两个不同的模式。如果不提及模式,服务器将不知道您正在调用哪个函数。SQL server引擎总是将查询解析为多个部分,如果您不使用前缀,它将在使用[dbo]之前与不同的用户搜索具有类似名称的对象。我建议您遵循前缀机制,不仅是为了满足最佳实践,也是为了避免性能问题,并使代码具有可伸缩性
问的老问题请参考此谢谢,Curt,除了使用select语句外,我们还有什么方法从vb.net执行标量函数呢?我建议使用第二个类似的查询,
select dbo.function\u name(value1)
。我觉得用这个没问题。或者,您可以将此查询移动到存储过程中,并执行该存储过程以获取返回的值。