繁体   English   中英

如何从安装在SQL Server数据库中的程序集中引用该数据库中的本地表?

[英]How do I generically reference a local table in a SQL Server database from an assembly installed in that database?

假设我有一个程序集,该程序集带有我已经安装在SQL Server数据库中的does_stuff()方法。 我希望此方法/ storedproc引用数据库中的特定已知表。 我如何在不知道宿主在哪里的情况下获取does_stuff访问表的内容?

假设does_stuff应该访问表info_config 如果它托管在数据库ALPHA ,它将访问ALPHA.info_config如果它托管在数据库BETA ,它将访问BETA.info_config

我知道如何使用ADO.NET打开数据库连接等,但是这些需要特定的服务器和数据库字符串。 我需要灵活性,以便无论在哪里托管程序集都可以执行相同的操作。

Google搜索没有给我任何帮助。

提前致谢

您所要做的就是使用上下文连接

目前,它似乎并不明显,但是CLR代码总是在某些上下文中执行。 总有某人(某人)直接或在某些父范围内执行代码(存储过程调用CLR函数,在插入时触发CLR触发器等)。 当程序执行到达上下文连接时,它仅使用该作用域的连接参数(服务器,数据库,SET选项等)。

I want this method/storedproc to refer to a specific known table in the database.

打开上下文连接后,您将照常查询数据库。

using (SqlConnection conn = new SqlConnection("context connection=true"))
{
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM MyTable");
    SqlContext.Pipe.ExecuteAndSend(cmd);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM