Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自vb.net的SQL存储函数调用_Sql_Vb.net_Sql Server 2008 - Fatal编程技术网

来自vb.net的SQL存储函数调用

来自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到底在玩什么魔术吗 提前谢谢

我在SQLServer中创建了一个存储函数。当我试图用命令文本从vb.net调用它时,比如

---- 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)
。我觉得用这个没问题。或者,您可以将此查询移动到存储过程中,并执行该存储过程以获取返回的值。