SQL服务器 - 执行标量函数而不指定数据库名称

Ghi*_*ita 5 sql sql-server

我有一个用户定义的SQL函数,我可以使用语法从管理工作室调用 dbo.Function(arg)

现在,当我不得不从C#调用此函数时如果我没有指定**dbname**.dbo.Function(arg)我得到SQL服务器找不到此用户定义函数的错误.如何在不指定dbname的情况下解决这个问题?我已经使用指定""的连接字符串连接到服务器initial catalog = dbname"


在这一点上我似乎无法重现上述行为:-)(使用SQL Server 2005或2008)我必须暂停这个问题

Yuc*_*uck 2

您的连接字符串需要指定最初要使用的数据库。它可能看起来像这样:

var cn = new SqlConnection(
    "SERVER=SomeServer;DATABASE=SomeDb;Integrated Security=SSPI;"
);
Run Code Online (Sandbox Code Playgroud)

如果没有它,您可能会被转储到master数据库中,这就是您需要完全限定函数名称的原因。