我使用Delphi5+Sql2000开发了一套数据维护系统,客户要求我们能自动创建数据库和表。请问如何实现,是使用MSSQL的函数还是使用特殊脚本?反正用普通脚本总是报错(关于“GO的错误”和“创建视图必须是第一行语句”)
分数不够我再添。

解决方案 »

  1.   

    create database databasename 
    create table tablename
    drop database ...
    drop table看一看,mssql帮助
      

  2.   

    先建一个数据库和表,然后导出SQL语句
      

  3.   

    create database databasename 
    use databasename 
    create table tablename
      

  4.   

    数据库操纵语言sql,也可用database获得表结构进行建表,你可搜一下以前的贴子,有过讨论!!!
      

  5.   


    语法
    CREATE DATABASE database_name 
    [ ON 
        [ < filespec > [ ,...n ] ] 
        [ , < filegroup > [ ,...n ] ] 

    [ LOG ON { < filespec > [ ,...n ] } ] 
    [ COLLATE collation_name ]
    [ FOR LOAD | FOR ATTACH ] < filespec > ::=[ PRIMARY ]
    ( [ NAME = logical_file_name , ]
        FILENAME = 'os_file_name'
        [ , SIZE = size ]
        [ , MAXSIZE = { max_size | UNLIMITED } ]
        [ , FILEGROWTH = growth_increment ] ) [ ,...n ]< filegroup > ::=FILEGROUP filegroup_name < filespec > [ ,...n ]参数
    database_name新数据库的名称。ON指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 <filegroup> 项列表(可选),<filegroup> 项用以定义用户文件组及其文件。n占位符,表示可以为新数据库指定多个文件。LOG ON指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。FOR ATTACH指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 <filespec> 条目。至于其它 <filespec> 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 <filespec> 条目。附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用 sp_attach_db 系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 <filespec> 项目时,才需要使用 CREATE DATABASE FOR ATTACH。 如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。collation_name指定数据库的默认排序规则。
    PRIMARY指定关联的 <filespec> 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 <filespec> 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。NAME为由 <filespec> 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。logical_file_name用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name 在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。FILENAME为 <filespec> 定义的文件指定操作系统文件名。'os_file_name'操作系统创建 <filespec> 定义的物理文件时使用的路径名和文件名。os_file_name 中的路径必须指定 SQL Server 实例上的目录。os_file_name 不能指定压缩文件系统中的目录。
    SIZE指定 <filespec> 中定义的文件的大小。如果主文件的 <filespec> 中没有提供 SIZE 参数,那么 SQL Server 将使用 model 数据库中的主文件大小。如果次要文件或日志文件的 <filespec> 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。size<filespec> 中定义的文件的初始大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size 的最小值为 512 KB。如果没有指定 size,则默认值为 1 MB。为主文件指定的大小至少应与 model 数据库的主文件大小相同。MAXSIZE指定 <filespec> 中定义的文件可以增长到的最大大小。max_size<filespec> 中定义的文件可以增长到的最大大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定 max_size,那么文件将增长到磁盘变满为止。 
    UNLIMITED指定 <filespec> 中定义的文件将增长到磁盘变满为止。FILEGROWTH指定 <filespec> 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。growth_increment每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。
    说明  创建用户数据库后,应备份 master 数据库。SIZE、MAXSIZE 和 FILEGROWTH 参数中不能指定分数。若要在 SIZE 参数中指定以兆字节为单位的分数,请将该数字乘以 1,024 转换成千字节。例如,指定 1,536 KB 而不要指定 1.5 MB(1.5 乘以 1,024 等于 1,536)。如果仅指定 CREATE DATABASE database_name 语句而不带其它参数,那么数据库的大小将与 model 数据库的大小相等。示例
    A. 创建指定数据文件和事务日志文件的数据库
    下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。USE master
    GO
    CREATE DATABASE Sales
    ON 
    ( NAME = Sales_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )
    GOB. 指定多个数据文件和事务日志文件创建数据库
    下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。USE master
    GO
    CREATE DATABASE Archive 
    ON
    PRIMARY ( NAME = Arch1,
          FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf',
          SIZE = 100MB,
          MAXSIZE = 200,
          FILEGROWTH = 20),
    ( NAME = Arch2,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat2.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20),
    ( NAME = Arch3,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat3.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    LOG ON 
    ( NAME = Archlog1,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog1.ldf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20),
    ( NAME = Archlog2,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog2.ldf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    GOC. 创建简单的数据库
    本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 <filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。USE master
    GO
    CREATE DATABASE Products
    ON 
    ( NAME = prods_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods.mdf',
       SIZE = 4,
       MAXSIZE = 10,
       FILEGROWTH = 1 )
    GOD. 不指定文件创建数据库
    下面的示例创建名为 mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 <filespec> 项,所以主数据库文件的大小为 model 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。CREATE DATABASE mytestE. 不指定 SIZE 创建数据库
    下面的示例创建名为 products2 的数据库。文件 prods2_dat 将成为主文件,大小等于 model 数据库中主文件的大小。事务日志文件会自动创建,其大小为主文件大小的 25% 或 512 KB 中的较大值。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。USE master
    GO
    CREATE DATABASE Products2
    ON 
    ( NAME = prods2_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods2.mdf' )
    GO
      

  6.   

    没有这么夸张吧,好长的帮助!
    你可以
    1 用sql的导出sql语句脚本功能将数据库的结构导出成sql语句,然后在程序中create databse以后运行就行了,但如果有表里有基础数据,需要自己添加
    2 用backup/restore database将数据库文件备份下来,然后在程序里恢复
    3 直接将数据库拷贝到客户的服务器上,然后用sp_attach_db存储过程添加到数据库服务器。
      

  7.   

    比较方便的是先在sql2000里先建一个数据库和相关表,然后导出SQL语句。不过导出后应该把“go”去掉