代码之家  ›  专栏  ›  技术社区  ›  Srikar Doddi

在SQL Server中编写SQL语句时,如何从表名中删除dbo前缀?

  •  13
  • Srikar Doddi  · 技术社区  · 15 年前

    我的模式中的所有表都有一个前缀dbo。现在在我的SQL语句中,我不喜欢一直使用dbo.tablename。是否有任何解决方法或配置更改?

    5 回复  |  直到 8 年前
        1
  •  31
  •   SQLMenace    15 年前

    实际上,你应该离开那些数据库。语句,因为您的SQL将更快,因为优化器不必查找架构

    同时查看此链接 Performance Impact of Procedure Calls without Owner Qualification

        2
  •  6
  •   marc_s    15 年前

    离开DBO实际上是有益的。前缀就位-毕竟,在SQL Server中,可以有多个具有相同表名的架构(dbo.“thingie”),例如dbo.mytable、joe.mytable、frank.mytable。

    如果您随后从myTable中发出一个select(字段列表),SQL Server必须首先确定您真正指的“myTable”表中的哪些表——>这需要花费时间,直接指定您想要的“dbo.myTable”将节省您的时间。

    好吧,一个查询不多,但是select查询非常频繁,而且都是累积起来的!

    马克

        3
  •  2
  •   Esperento57    8 年前

    就像这样,如果所有表都在dbo模式中

    use mydatabase
    go
    select * from mytable
    

    如果您有多个数据库,也可以这样做:

    select * from mydatabase..mytable
    
        4
  •  1
  •   Community CDub    7 年前

    赏金问题并不是最初的问题。

    当前的答案没有包含足够的详细信息。

    没有一个答案真正解决了如何删除 dbo前缀或将其更改为其他内容。

    dbo 是模式。不能从表中删除架构。你可以改变它。有很多例子。这里有一个: How do I move a table into a schema in T-SQL .

        5
  •  -3
  •   Jhonny D. Cano -Leftware-    15 年前

    我认为您连接的用户必须属于DBO模式,然后您不必键入前缀,它将从用户所属的模式中推断出前缀。