[SqlException(0x80131904):无效的对象名称'dbo.TableName'。]

时间:2011-05-16 09:34:58

标签: sql-server visual-studio-2010 database-connection connection-string

我正在查看google和stackoverflow,但我没有找到答案,如何通过VS 2010中的连接字符串连接到我的数据库表?

<add 
  name="ArticleDBContext" 
  connectionString="Data Source=mssql3.webio.pl,2401;Initial Catalog=db_name;Persist Security Info=True;User ID=db_user;Password=passwd;Pooling=False"
  providerName="System.Data.SqlClient"
 />

我总是得到错误:[SqlException(0x80131904):无效的对象名称'dbo.TableName'。]

我知道'dbo'是SCHEMA,我不需要它,我怎么能改变它?

我使用mvc和EntityFramework

,代码是这样的:

在模特中:

public class Article
{
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime CreateDate { get; set; }
    public string tekst { get; set; }
}

public class ArticleDBContext : DbContext
{
    public DbSet<Article> Articles { get; set; }
}

并在控制器中:

public ViewResult Index()
    {
        return View(db.Articles.ToList());
    }

示例来自http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs

1 个答案:

答案 0 :(得分:2)

我找到答案并且有所帮助!

来源:http://blogs.x2line.com/al/articles/155.aspx

MSSQL:使用sp_changeobjectowner将表所有者更改为dbo

有时需要更改数据库中的所有表以由dbo拥有以进行维护或修复意外错误。 dbo模式拥有的所有表通常是使用MSSQL进行数据库应用程序开发的最佳实践,而我们可以在现实生活中遇到不同的方法......

以下小型SQL代码段遍历数据库中的所有用户表,并将其所有者更改为dbo。它使用sp_changeobjectowner系统存储过程:

DECLARE tabcurs CURSOR
FOR
SELECT 'SOMEOWNER.' + [name]
  FROM sysobjects
 WHERE xtype = 'u'

OPEN tabcurs
DECLARE @tname NVARCHAR(517)
FETCH NEXT FROM tabcurs INTO @tname

WHILE @@fetch_status = 0
BEGIN

EXEC sp_changeobjectowner @tname, 'dbo'

FETCH NEXT FROM tabcurs INTO @tname
END
CLOSE tabcurs
DEALLOCATE tabcurs