在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlserver2000中却不存在这样的问题,那为什么在2005中会出现这样的事情,这样的设置可以带来哪些好处?其实导致这一问题的原因主要在于2005中多了一个新的概念—架构。
架构实际上在sqlserver2000中就已经存在,当我们使用查询分析器去查询一个表的时候,一个完整的表的名称应该包括服务器名.数据库名.用户名.对象名,而在sqlserver2005中一个表的完全限定名称应该为服务器名.数据库名.架构名.对象名
在2000中,假如有一个账户tt在test数据库中创建了一张表table1的时候,在服务器上对查询的语句应为select * from test.tt.table1,也就是说,在sqlserver 2000中一张表所属的架构默认就是表的创建者的登录名称,用户可以和修改他所创建的所有数据库对象。但在2005中已经将用户和其创建对象所属架构的关联取消了,而加入了一个全新的架构体系,这样做的优点主要在于下面几个方面:
1.
2.
3.
4.
5.
默认值的作用,一般来说就是让这个字段里有内容,将来方便查询或更改。
一般情况举例:
如人员名单,这里性别是不为空的,但有时会有人忘记填写,这个时候就需要填写一个默认的性别,比如:男。因为人都是有性别的,所以给个默认值,会方便使用的人来修改或查询。
再一种就是插入数据的时间一般也需要默认值,一般都会填写当前的系统时间,这个一般起到日志的作用,将来知道这条数据是何时插入或更新的。
sql一张表数据导入另一张表
如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:
Code: www.2cto.com
INSERT INTO 目标表 SELECT * FROM 来源表;
比如要将 articles 表插入到 newArticles 表中,则是:
INSERT INTO newArticles SELECT * FROM articles;
如果只希望导入指定字段,可以用这种方法:
INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
注意字段的顺序必须一致。