001_创建数据库和表

001_创建数据库和表

 

--数据库的创建不能再事物中展开,因为创建数据库本身就是一个事物,平常应该注意避免嵌套事务

--创建数据库TEST_BAK

IF EXISTS ( SELECT  1

            FROM    sys.sysdatabases

            WHERE   name = ‘TEST_BAK‘ )

    PRINT N‘数据库 ‘‘TEST_BAK‘‘ 已存在!‘

ELSE

    BEGIN

        CREATE DATABASE TEST_BAK ON

                   (

                            NAME=‘TEST_BAK_mdf‘,--数据文件逻辑名

                            FILENAME=‘E:\sql_2008\TEST_BAK.mdf‘,--数据文件存放路径

                            SIZE=3MB,--初始大小

                            MAXSIZE=30MB,--最大大小

                            FILEGROWTH=2MB--整张速度

                   ) LOG ON --日志文件

                   (

                            NAME=‘test_ldf‘,--日志文件逻辑名

                            FILENAME=‘E:\sql_2008\TEST_BAK.ldf‘,--数据文件存放路径

                            SIZE=1MB,--初始大小

                            MAXSIZE=10MB,--最大大小

                            FILEGROWTH=1MB--整张速度

                   )

    END

   

USE TEST_BAK

 

--------------------------------------------------------------

 

BEGIN TRANSACTION trans_test

 

IF EXISTS ( SELECT  *

            FROM    sysobjects

            WHERE   name = N‘stuInfo‘ )

    DROP TABLE stuInfo

go 

IF @@ERROR <> 0

        PRINT N‘删除table:‘‘stuInfo‘‘失败!‘

 

go   

CREATE TABLE stuInfo    /*-创建学员信息表-*/

    (

      stuNo VARCHAR(6) NOT NULL

                       UNIQUE ,   --学号,非空(必填)

      stuName VARCHAR(20) NOT NULL ,  --姓名,非空(必填)

      stuAge INT NOT NULL ,  --年龄,INT类型默认为4个字节

      stuID NUMERIC(18, 0) ,     --身份证号

      stuSeat INT IDENTITY(1, 1) ,   --座位号,自动编号

      stuAddress TEXT   --住址,允许为空,即可选输入

    )

go

IF @@ERROR <> 0

        PRINT N‘创建table:‘‘stuInfo‘‘失败!‘

 

go

 

IF EXISTS ( SELECT  *

            FROM    sysobjects

            WHERE   name = N‘stuMarks‘ )

    DROP TABLE stuMarks

IF @@ERROR <> 0

        PRINT N‘删除table:‘‘stuMarks‘‘失败!‘

CREATE TABLE stuMarks

    (

      ExamNo VARCHAR(6) NOT NULL

                        FOREIGN KEY REFERENCES stuInfo ( stuNo ) ,  --考号

      stuNo VARCHAR(6) NOT NULL ,   --学号

      writtenExam INT NOT NULL ,  --笔试成绩

      LabExam INT NOT NULL    --机试成绩

    )

go

IF @@ERROR <> 0

        PRINT N‘创建table:‘‘stuMarks‘‘失败!‘

 

go

 

IF EXISTS ( SELECT  *

            FROM    sysobjects

            WHERE   name = N‘users‘ )

    DROP TABLE users

IF @@ERROR <> 0

        PRINT N‘删除table:‘‘users‘‘失败!‘

go

     

CREATE TABLE users

    (

      userID INT NOT NULL

                 PRIMARY KEY

                 IDENTITY(1, 1) ,

      userName VARCHAR(255) NOT NULL

                            UNIQUE ,

      userPWD VARCHAR(255) NOT NULL ,

      userAge INT ,

      userBirthDay DATETIME ,

      userEmail VARCHAR(255)

    )

go

IF @@ERROR <> 0

        PRINT N‘创建table:‘‘users‘‘失败!‘

 

 

COMMIT TRANSACTION trans_test

 

---------------------------------------------------------------

 

--调用sp_helpconstraint 来查询表 stuMarks 的外键

EXEC sp_helpconstraint N‘stuMarks‘

 

--直接删除外键

ALTER  TABLE stuMarks

    DROP constraint FK__stuMarks__ExamNo__023D5A04

 

--删除数据库

DROP DATABASE TEST_BAK

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。