--IF DB_ID('testdb') IS NULL
--CREATE DATABASE testdb
USE master
GO
IF EXISTS ( SELECT *
FROM sys.databases
WHERE name = 'TestDB' ) --是否存在,存在删除
DROP DATABASE TestDB
--GO
-- EXEC xp_cmdshell 'mkdir D:\SQL' --调用DOS命令创建文件夹
CREATE DATABASE TestDB ON PRIMARY --PRIMARY可选,用于创建主数据库文件
(
NAME='TestDB1_data',--主数据库文件逻辑名
FILENAME='D:\SQL\TestDB1_data.mdf',--主数据库文件物理名
SIZE=5MB,--主数据库文件初始大小
MAXSIZE=10MB,--主数据库文件最大大小
FILEGROWTH = 10%--主数据库文件增长值
),
(
NAME='TestDB2_data',--次数据库文件逻辑名
FILENAME='D:\SQL\TestDB2_data.ndf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH = 10%
) LOG ON
(
NAME='TestDB1_log',
FILENAME='D:\SQL\TestDB1_log.1df',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH = 10%
),
(
NAME='TestDB2_log',
FILENAME='D:\SQL\TestDB2_log.1df',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH = 10%
)
GO
USE TestDB
GO
IF EXISTS ( SELECT * FROM sys.objects WHERE name = 'TestTable1' AND type = 'u' )
DROP TABLE TestTable1
CREATE TABLE TestTable1
(
[id] INT NOT NULL PRIMARY KEY IDENTITY(1, 1) ,
[T1_id] INT NOT NULL UNIQUE,
[name] VARCHAR(200) NOT NULL ,
[age] INT NOT NULL CHECK(age > 0),
[remark] NVARCHAR(2000) NULL DEFAULT ('')
) go
IF EXISTS ( SELECT * FROM sys.objects WHERE name = 'TestTable2' AND type = 'u' )
DROP TABLE TestTable2
CREATE TABLE TestTable2
(
[id] INT NOT NULL ,
[T2_id] INT NOT NULL FOREIGN KEY REFERENCES TestTable1(id) ,
[name] VARCHAR(200) NOT NULL ,
[age] INT NOT NULL ,
[remark] NVARCHAR(2000) NULL
)
--在外部添加约束
ALTER TABLE dbo.TestTable2 ADD CONSTRAINT Pk_Id PRIMARY KEY (id) --主键
--ALTER TABLE dbo.TestTable2 DROP CONSTRAINT pk_id --删除主键
ALTER TABLE dbo.TestTable2 ADD CONSTRAINT Uq_Id UNIQUE(T2_id)--唯一
--ALTER TABLE dbo.TestTable2 DROP CONSTRAINT uq_id --删除唯一
ALTER TABLE dbo.TestTable2 ADD CONSTRAINT Ck_Age CHECK(age > 0 )--检查
--
ALTER TABLE dbo.TestTable2 ADD CONSTRAINT Df_name DEFAULT('') FOR name
--ALTER TABLE dbo.TestTable2 DROP CONSTRAINT Df_name
ALTER TABLE dbo.TestTable2 ADD CONSTRAINT Fk_Id FOREIGN KEY (T2_id) REFERENCES dbo.TestTable1 (id)
--
--USE master
--DROP DATABASE TestDB

快速建库

-- 1.搜索 [Sharp4DemoDase] 更改为你要创建的库名称 

-- 2.搜索 N'Sharp4DBTest_log' 替换为新库的日志名称 

-- 3.搜索 N'Sharp4DBTest' 替换为新的库文件名 

-- 4.搜索 N'D:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\Sharp4DBTest.mdf' 为新的库文件保存路径 ' 

-- 5.搜索 N'D:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\Sharp4DBTest_log.ldf' 为新的日文件保存路途径 

-- 然后执行下面的脚本 

USE [master] 

GO 

/****** 对象 :  Database [Sharp4DemoDase]    脚本日期 : 12/28/2008 23:13:57 ******/ 

CREATE DATABASE [Sharp4DemoDase] ON PRIMARY
(
NAME= N'Sharp4DBTest' ,
FILENAME= N'D:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\Sharp4DBTest.mdf',
SIZE= 3072KB ,
MAXSIZE= UNLIMITED,
FILEGROWTH= 1024KB
) LOG ON
(
NAME= N'Sharp4DBTest_log' ,
FILENAME= N'D:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\Sharp4DBTest_log.ldf',
SIZE= 1024KB ,
MAXSIZE= 2048GB ,
FILEGROWTH= 10%
) COLLATE Chinese_PRC_CI_AS GO EXEC dbo.sp_dbcmptlevel @dbname = N'Sharp4DemoDase', @new_cmptlevel = 90
GO
IF ( 1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') )
BEGIN
EXEC [Sharp4DemoDase].[dbo].[sp_fulltext_database] @action = 'disable'
END
GO
ALTER DATABASE [Sharp4DemoDase] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ANSI_NULLS OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ANSI_PADDING OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ARITHABORT OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [Sharp4DemoDase] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [Sharp4DemoDase] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [Sharp4DemoDase] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ENABLE_BROKER
GO
ALTER DATABASE [Sharp4DemoDase] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [Sharp4DemoDase] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [Sharp4DemoDase] SET READ_WRITE
GO
ALTER DATABASE [Sharp4DemoDase] SET RECOVERY FULL
GO
ALTER DATABASE [Sharp4DemoDase] SET MULTI_USER
GO
ALTER DATABASE [Sharp4DemoDase] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [Sharp4DemoDase] SET DB_CHAINING OFF USE [master]
GO
/****** 对象 : Database [Test01] 脚本日期 : 12/29/2008 10:08:46 ******/
IF EXISTS ( SELECT name
FROM sys.databases
WHERE name = N'Test01' )
DROP DATABASE [Test01]

参考:--更多超详细的约束请看 http://www.cnblogs.com/troywithblog/archive/2013/05/24/3096480.html

SQL_DDL_建库建表的更多相关文章

  1. MySQL建库建表

    一直使用SQL SERVER 数据库:最近项目使用MY SQL感觉还是有一点不适应.不过熟悉之后就会好很多. MY SQL 安装之后会有一个管理工具MySQL Workbench 感觉不太好用,数据库 ...

  2. 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式

    导读:在最近接手的项目(高效云平台)中,有一个需求是要当企业用户注册时,给其动态的新建一个库和表.刚开始接手的时候,是一点头绪都没有,然后查了一些资料,也问了问上一版本的师哥师姐,终于有了点头绪.目前 ...

  3. 【ITOO 3】.NET 动态建库建表:实用EF框架提供的codeFirst实现动态建库

    导读:在上篇博客中,介绍了使用SQL字符拼接的方式,实现动态建库建表的方法.这样做虽然也能够实现效果,但是,太麻烦,而且,如果改动表结构,字段的话,会对代码修改很多.但是EF给我们提供了一种代码先行的 ...

  4. SQL Server建库-建表-建约束

    ----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...

  5. 使用T-sql建库建表建约束

    为什么要使用sql语句建库建表? 现在假设这样一个场景,公司的项目经过测试没问题后需要在客户的实际环境中进行演示,那就需要对数据进行移植,现在问题来了:客户的数据库版本和公司开发阶段使用的数据库不兼容 ...

  6. mysql那些事(4)建库建表编码的选择

    mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就 ...

  7. C# 利用*.SQL文件自动建库建表等的类

    /// <summary> /// 自动建库建表 /// </summary> public class OperationSqlFile { SqlConnection sq ...

  8. Mysql建库建用户建表等常用命令

    格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输 ...

  9. oracle 11g 建库 建表 增 删 改 查 约束

    一.建库 1.(点击左上角带绿色+号的按钮) 2.(进入这个界面,passowrd为密码.填写完后点击下面一排的Test按钮进行测试,无异常就点击Connect) 二.建表 1-1. create t ...

随机推荐

  1. 【社区公益】送《Web前端开发最佳实践》给需要的人

    算起来至今,我进入软件开发行业已经有11年之久.从最初的研究人工智能,到后来的Web开发,控件开发,直到现在纯粹的Web前端开发.虽然没有大的作品问世,但也是勤勤恳恳,踏实做事,低调做人.从来不吹牛逼 ...

  2. ASP.NET MVC5+ 路由特性

    概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visual Studio 20 ...

  3. HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.binding.BindingException

    在使用Maven工程管理工具整合SSM框架时,Mybatis使用逆向工程生成的pojo,mapper接口及映射文件,把mapper接口和映射文件放在DAO工程的同一级src/main/java目录下. ...

  4. Django实战(16):Django+jquery

    现在我们有了一个使用json格式的RESTful API,可以实现这样的功能了:为了避免在产品列表和购物车之间来回切换,需要在产品列表界面显示购物车,并且通过ajax的方式不刷新界面就更新购物车的显示 ...

  5. python的简介(一)

    1. Python的种类 Cpython     Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚 ...

  6. VPS开启Google BBR

    前言:系统环境为Ubuntu 18.04 修改系统变量: echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf ec ...

  7. MyEclipse 10、9、8 添加jadClipse反编译插件

    jad是一个使用比较广泛的Java反编译软件,jadClipse是jad在eclipse下的插件,如何将jadclipse加入到MyEclipse10.X,9.X,8.X当中: http://nchc ...

  8. SERVLET API中forward()与redirect()的区别?

    前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址:后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接.这样,从浏览器的地址栏中可以看到跳转后的链接地址.所以,前者 ...

  9. Android四大组件-服务

    Android服务 android 的服务有点类似windows的服务,没有界面,在后台长时间运行,如果我们这种需求的话我们就可以使用服务来实现. 服务的典型应用场景: 播放音乐,下载等,如果要在一个 ...

  10. [ 原创 ]Centos 7.0下启动 Tomcat8.5.15

    1.打开8080端口  firewall-cmd --zone=public --add-port=8080/tcp --permanent 2.重启防火墙   firewall-cmd --relo ...