我对课本上的create schema 理解是等同与create database,但是事实上并非如此,不知哪位高手可以告诉我schema到底是什么意思?sql server 2000的联机帮助,我也看的不太懂。谢谢各位了。

解决方案 »

  1.   

    schema 就是架构的意思 比如我们创建表或者查询表的时候前面会加上dbo
    dbo 就是一个创建好的架构,也就是所有者的意思一个数据库下面可以有多的所有者,每个所有者创建自己各自的表表名可以相同,只是前面的schema 不同而已create schema 是Sql2005里面的语法,不是Sql2000的
      

  2.   

    我在sql server 2000的查询分析器中,成功执行了create schema st authorization wang
    ,是否意味着st是个数据库?它的拥有者是wang?我能用企业管理器查看到wang的信息吗?似乎也不是用户名。
    看了你的解释,我似乎理解了一些,还请再赐教。谢谢!
      

  3.   

    成功执行了create schema st authorization wang那么 wang 就是数据库中的一个用户 st 就是一个架构名创建表的时候可以 
    create table st.表名(t1 int)访问的时候
    select * from st.表名
    再次声明:这个是Sql2005里面的,不知道在Sql2000里面会变成什么?
      

  4.   

    以下是2000里的帮助文档,难道2000会把2005的语法放到里面吗??这好像讲不通啊!CREATE SCHEMA
    创建一个架构,并且可以在概念上将其看作是包含表、视图和权限定义的对象。语法
    CREATE SCHEMA AUTHORIZATION owner
        [ < schema_element > [ ...n ] ]< schema_element > ::=
        { table_definition | view_definition | grant_statement }参数
    AUTHORIZATION owner指定架构对象所有者的 ID。此标识符必须是数据库中有效的安全帐户。table_definition指定在架构内创建表的 CREATE TABLE 语句。view_definition指定在架构内创建视图的 CREATE VIEW 语句。grant_statement指定授予用户或用户组权限的 GRANT 语句。 注释
    CREATE SCHEMA 提供了在单个语句中创建表、视图以及授予对象权限的方法。如果在创建任何对象或授予任何权限(这些是在 CREATE SCHEMA 语句中指定的)时发生错误,则不会创建任何对象。创建的对象不必按逻辑顺序出现,但引用其它视图的视图除外。例如,GRANT 语句可以在创建某个对象之前授予该对象的权限,CREATE VIEW 语句也可以出现在创建该视图所引用表的 CREATE TABLE 语句之前。同样,CREATE TABLE 语句中声明的外键可以指向后面指定的表。例外情况是,如果一个视图的选择语句引用另一个视图,则必须在指定引用视图之前指定被引用的视图。权限
    CREATE SCHEMA 权限默认授予所有用户,但是他们必须有权创建加入到架构中的对象。示例
    A. 在创建对象之前授权访问对象
    下例显示在创建对象之前授予权限。CREATE SCHEMA AUTHORIZATION ross 
    GRANT SELECT on v1 TO public
    CREATE VIEW v1(c1) AS SELECT c1 from t1
    CREATE TABLE t1(c1 int)B. 创建相互依赖的 FOREIGN KEY 约束
    下例创建相互依赖的 FOREIGN KEY 约束。用其它方法完成由此 CREATE SCHEMA 示例实现的任务时,需要执行多个步骤。CREATE SCHEMA AUTHORIZATION ross
    CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT REFERENCES t2(c1))
    CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT REFERENCES t1(c1))©1988-2000 Microsoft Corporation。保留所有权利。
      

  5.   

    我也是对sql server 2000中的解释不太理解呢。