我从SQL Server中删除了一个数据库,但事实证明我的登录设置为使用已删除的数据库作为其默认值.我可以使用连接对话框中的"选项"按钮连接到SQL Server Management Studio,并选择"master"作为要连接的数据库.但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败.
有没有人知道如何在不使用object explorer的情况下设置我的默认数据库?
我需要从 .Net 查找 SQL Server 2005 或 2008 数据库中列的默认值。
我的第一次尝试是执行存储过程:
sp_help @objname
Run Code Online (Sandbox Code Playgroud)
@objname桌子在哪里。然后在返回的第七个表(约束表)中,我将使用constraint_keys默认约束的值。当我从 SQL Server Management Studio 运行此查询时,它的行为符合预期,但当我从 C# 代码运行它时,该constraint_keys列为空(尽管所有其他列都已填充)。
我的第二次尝试是使用:
SELECT name, [text]
FROM syscomments com
INNER JOIN syscolumns col ON com.id = col.cdefault
WHERE col.id = object_id(@Table)
AND col.cdefault > 0
Run Code Online (Sandbox Code Playgroud)
这在 SQL Server Management Studio 中也可以正常工作。然而,当我从 .Net 运行它时,它不返回任何行。
额外的:
.Net 代码示例(使用企业库):
private DataTable GetDefaults(string tablename string database)
{
var db = DatabaseEL.Create(database);
string sql = @"
SELECT name, [text]
FROM syscomments com …Run Code Online (Sandbox Code Playgroud)