我有一个可以从management studio成功调用的SQL脚本select [master].[dbo].sp_SearchDuplicatedAddress('','','','')。sp_SearchDuplicatedAddress函数存在于主数据库中,登录的用户可以访问,这里没有问题。当我尝试从ADO.Net执行该SQL脚本时,出现了以下错误:
System.Data.SqlClient.SqlException: 'Cannot find either column "master" or the user-defined function or aggregate "master.dbo.sp_SearchDuplicatedAddress", or the name is ambiguous.'下面是示例应用程序的代码:
var conn = new SqlConnection();
var cmd = conn.CreateCommand();
cmd.CommandText = "select [master].[dbo].sp_SearchDuplicatedAddress('','','','')";
conn.Open();
var outt = cmd.ExecuteScalar();
}你知道如何从ADO.Net执行跨数据库查询吗?
发布于 2020-05-09 02:44:24
对我来说不是复制品。你能修改下面的内容来重现这个行为吗?
using Microsoft.Data.SqlClient;
using System;
namespace SqlClientTest
{
class Program
{
static void Main(string[] args)
{
var constr = "server=localhost;database=master;integrated security=true";
using (var conn = new SqlConnection(constr))
{
var cmd = conn.CreateCommand();
cmd.CommandText = @"
create or alter function dbo.sp_SearchDuplicatedAddress ( @a varchar(20),@b varchar(20),@c varchar(20),@d varchar(20) )
returns int
as
begin
return 3;
end ";
conn.Open();
cmd.ExecuteNonQuery();
}
constr = "server=localhost;database=tempdb;integrated security=true";
using (var conn = new SqlConnection(constr))
{
var cmd = conn.CreateCommand();
cmd.CommandText = "select [master].[dbo].sp_SearchDuplicatedAddress('','','','')";
conn.Open();
var outt = cmd.ExecuteScalar();
Console.WriteLine(outt);
}
}
}
}https://stackoverflow.com/questions/61685625
复制相似问题