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