我的数据库所有者对master数据库没有任何权限,我正在寻找一种方法来确定SQL Server服务器是否存在,以及该服务器上是否存在数据库。
答案 0 :(得分:0)
您可以使用SMO来管理SQL Server对象模型。
答案 1 :(得分:0)
首先让我们检查本地计算机上是否有sqlserver实例。
这可以通过SMO(reference of SMO和another reference)来完成,例如
using Microsoft.SqlServer.Management.Smo;
DataTable dataTable = SmoApplication.EnumAvailableSqlServers(true);//if true is passed it
//will enumerate local instance only.
foreach (DataRow dataRow in dataTable)
{
if ((dataRow["Server"] as string) == "MyServerName")
Console.WriteLine(dataRow["Instance"] as string);
}
然后检查所需的数据库是否可用使用:
使用函数db_id返回数据库的Id(如果存在),否则返回null。下面的示例T-SQL:
if (db_id('INVENTORY') is null)
begin
return 0
end
else
begin
return 1
end
希望这会有所帮助。