【问题标题】:sql script to create a new database创建新数据库的sql脚本
【发布时间】:2009-11-05 15:12:35
【问题描述】:

我有以下脚本。 我不知道如何在 sql server 2005 中创建新数据库。 我运行以下脚本,它在模型而不是单独的数据库下创建表。它看起来很重。

如何创建单独的数据库。 我在这里复制一些脚本供您使用。

-----------------------------------------------------------
-- SQL Server 2000 Bible 
-- Hungry Minds 
-- Paul Nielsen

-- OBX Kites sample database - CREATE Database, Tables, and Procs

-- this script will drop an existing OBXKites database 
-- and create a fresh new installation

-- related scripts:
-- OBXKites_Populate

-- T-SQL KEYWORDS go
-- DatabaseNames   

-----------------------------------------------------------
-----------------------------------------------------------
-- Drop and Create Database


USE master
GO
IF EXISTS (SELECT * FROM SysDatabases WHERE NAME='OBXKites')
  DROP DATABASE OBXKites
go

-- This creates 1 database that uses 2 filegroups
CREATE DATABASE OBXKites
  ON PRIMARY
    (NAME = 'OBXKites', FILENAME = 'D:\SQLData\OBXKites.mdf'),
  FILEGROUP Static
    (NAME = 'OBXKitesStatic', FILENAME = 'c:\SQLData\OBXKitesStatic.ndf')
  LOG ON (NAME = 'OBXKitesLog',  FILENAME = 'c:\SQLData\OBXKites.ldf')
go

-- set to Full Log

go

SET QUOTED_IDENTIFIER ON
go
USE OBXKites
go

-----------------------------------------------------------
-----------------------------------------------------------
-- Create Tables, in order from primary to secondary

CREATE TABLE dbo.OrderPriority (
  OrderPriorityID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL DEFAULT (NEWID()) PRIMARY KEY NONCLUSTERED,
  OrderPriorityName NVARCHAR (15) NOT NULL,
  OrderPriorityCode NVARCHAR (15) NOT NULL,
  Priority INT NOT NULL
  )
  ON [Static]
go  

【问题讨论】:

  • 谁投了反对票?以什么为由?开发人员一直在使用 SQL 技术。

标签: database sql-server-2005 sample


【解决方案1】:
CREATE DATABASE OBXKites
ON PRIMARY
     (NAME = 'OBXKites', FILENAME = 'D:\SQLData\OBXKites.mdf'),  
   FILEGROUP Static
     (NAME = 'OBXKitesStatic', FILENAME = 'c:\SQLData\OBXKitesStatic.ndf')
LOG ON 
   (NAME = 'OBXKitesLog',  FILENAME = 'c:\SQLData\OBXKites.ldf')
go

脚本中的这段代码应该创建一个新数据库。如果过程中没有错误发生。

【讨论】:

  • 我明白了。你能解释一下上面脚本中的文件名吗?
  • 这告诉 sql server 在哪里找到数据库文件。在这种情况下,它为数据创建两个数据库文件,一个用于日志(事务)。通常中小型数据库只有 2 个文件。您可以删除这段代码,文件将被分配到服务器的默认目录中。如果您愿意/需要,您可以稍后移动这些文件。在您的代码中,它仅适用于我引用的第一句话。
  • 但是创建表有什么问题。我仍然收到文件组错误。
  • 如果您发布完整的错误会很有帮助。我很确定您正在以错误的方式查找错误。可能是没有为外部问题(安全性、权限等)创建数据库。
  • 现在解决了。我从表中删除了 ON [STATIC]。它正在工作.. 谢谢。
【解决方案2】:

你能把它简化一下吗?还是你必须做所有这些检查?

如果可以简化,我相信一些代码,例如:

CREATE DATABASE OBXKites

USE OBXKites

CREATE TABLE OrderPriority(syntax)

如果像这样的简单代码不起作用,您可能在权限或文件方面存在更深层次的问题,或者我之前的 queen3 建议的一些问题。

事后思考:我相信在我的学校我们也遇到过这样的问题......经过几节课后,我们终于得出结论,我们无权将文件添加到实验室计算机上的程序文件目录中并且 SQL 没有向我们报告错误。

【讨论】:

    【解决方案3】:

    输出中是否有任何错误?脚本本身已经完成了您的要求。

    我怀疑您错误地指定了文件名 - 其中一些位于驱动器 C: 上,而一些位于驱动器 D: 上。

    【讨论】:

      【解决方案4】:

      您的脚本将在 OBXKites 数据库中创建表(请参阅脚本中的 USE OBXKites 语句)

      OBXKites 数据库是否已存在于您的服务器实例中?如果是这样,这可能就是它似乎在当前数据库中创建表的原因,因为该脚本有效地删除并重新创建了 OBXKites 数据库。如果您需要一个不同的数据库名称,请在上面的脚本中找到“这将创建 1 个使用 2 个文件组的数据库”这一行之后的所有“OBXKites”实例,并将其重命名为您想要的新数据库名称。

      如果您的用户帐户缺乏执行此操作的适当权限,则唯一的其他选择可能是脚本在创建数据库时执行错误。但是,脚本会继续执行,在您登录的当前数据库中创建表,这就是您在那里看到表的原因。

      【讨论】:

        【解决方案5】:

        在 Ubuntu 终端中创建数据库

        我的数据库名称是database_name 你可以使用任何东西

        create database database_name;

        如何选择这个数据库在里面创建一个表。

        use database_name;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-11
          • 1970-01-01
          • 2013-05-27
          • 1970-01-01
          • 1970-01-01
          • 2011-06-17
          • 1970-01-01
          相关资源
          最近更新 更多