您的位置首页生活百科

SQL怎样创建非dbo的表

SQL怎样创建非dbo的表

的有关信息介绍如下:

SQL怎样创建非dbo的表

dbo是SQL Server默认的Schema,在SQL Server中创建表或其它数据库对象,如果没有指定Schema,则会默认创建在dbo这个Schema下面,那是否可以将表创建在其它Schema下面呢?本文说明在SQL Serve中如何创建非dbo的表或其它数据库对象。

User与Schema的区别

很容易区分User与Schema,User是用来管理数据库对象访问权限的,Schema是用来分组数据库对象的。User必需经过授权,才能访问挂在Schema下面的数据库对象。每个数据库对象一定会挂在某个Schema下面,创建对象时,如果没有指定Schema,就会挂在默认的Schema dbo下面。

User下面的dbo和Schema下面的dbo区别

User下面的有一个叫dbo的User,Schema下面有一个叫dbo的Schema,就像上面所述,前者是一个User,是用来管理授权的,后者是一个Schema,是用来分组数据库对象的,所以对象名称前面的Schema,如:dbo.table1,其中的dbo指的是Schema。

创建一个Schema

右键点击Schemas节点,点击菜单中的"New Schema",在创建Schema对话框中输入Schema的名称,如:demo,Schema Owner可以不指定,默认为dbo这个User,点确定创建Schema。

创建Schema下面的表

在创建表时,在表前面加上Schema名称,就可以创建,具体的SQL如下:

create table demo.table1(f1 varchar(30))

确认新建的表的Schema

刷新左侧对象浏览器,可以看到新建的table1的Schema是demo,查看table1的属性,也可以看到Schema是demo。

使用新建的非dbo Schema的表

使用非dbo Schema的表时,需要在表前面加上Schema名称,不然可能会出错,具体的Sql如下:

select * from demo.table1