T-SQL创建文件夹 与创建数据库

 

方法一:

其实根本不用判断文件夹是否存在,直接调用创建:

exec   master.dbo.xp_cmdshell   'md   C:\ABC '

如果文件夹   C:\ABC   存在,执行结果是:
/*
output
子目录或文件   C:\ABC   已经存在。
NULL
*/

如果文件夹   C:\ABC   存在,执行结果是:
/*
output
NULL
*/


至于   DOS   命令   MD   成功与否,都不会在   SQL中   raiserror。

可以用   no_output   参数把执行结果屏蔽起来:
exec   master.dbo.xp_cmdshell   'md   C:\ABC ',no_output
重复执行   N   次,都是:命令已成功完成。

 方法二:

最简单的方法
declare   @n   int;  
exec   @n=xp_cmdshell   'dir   d:\ASD ',NO_OUTPUT
IF   (@n=0)
    PRINT   '存在 '
else
    print   '目录不存在 '

 

注意:要使用xp_cmdshell存储过程,必须先启用xp_cmdshell,可以使用外围应用配置器工具以及通过执行 sp_configure 来启用和禁用 xp_cmdshell。

下面是T-SQL控制xp_cmdshell的启用或禁用:

EXEC sys.sp_configure N'show advanced options', N'1'  RECONFIGURE WITH OVERRIDE
Go
EXEC sys.sp_configure N'xp_cmdshell', N'1'  -- 为1则启用xp_cmdshell,为0则禁用xp_cmdshell

Go
RECONFIGURE WITH OVERRIDE
Go
EXEC sys.sp_configure N'show advanced options', N'0'  RECONFIGURE WITH OVERRIDE
Go

/*********************************************************************************************************/

在sql2000查询分析器创建数据库  

使用SQLServer查询分析器以语句方式创建数据库的方法可以按照指定的逻辑数据库名称和逻辑日志名称,在指定存储设备的指定路径上创建数据库;第二种格式,可以按照指定的逻辑数据库名称和默认的逻辑日志名称(数据库名称_LOG.LDF),在指定存储设备的指定路径上创建数据库;第三种格式,可以按照默认的逻辑数据库名称(数据库名称.MDF)和逻辑日志名称(数据库名称_LOG.LDF),在默认存储设备的默认路径


  如下:
  单击工具栏的“新建查询(N)”,启动查询分析器。
  管理工作室的新建数据库GUI
  (2)利用查询分析器,可以直接使用语句创建数据库、数据表和视图等。其具体方法如下:
  ◆在查询分析器中,直接输入SQL语句;
  ◆单击语句语法分析按钮“√”,检查分析SQL语句是否正确;
  ◆单击执行按钮“!执行(X)”,运行查询分析器中的语句序列。
  创建数据库的语句格式:
  CREATE DATABASE <数据库名>
  [ON
  ( NAME = <数据表名>,
  FILENAME = <盘符\路径\数据库存储名称>)
  [LOG ON
  ( NAME = <日志文件名>,
  FILENAME = <盘符\路径\日志文件存储名称>)]]
  创建数据库Student的语句:
  CREATE DATABASE Student
  ON
  ( NAME = 'Student_dat',
  FILENAME = 'D:\data\Student_dat.mdf')
  LOG ON
  ( NAME = 'Student_Log',
  FILENAME = 'D:\data\Student_Log.ldf ') 或者
  CREATE DATABASE Student
  ON
  ( NAME = 'Student_dat',
  FILENAME = 'D:\data\Student_dat.mdf') 或者
  CREATE DATABASE Student
  在默认存储设备的默认路径上,创建默认的逻辑数据库名称(Student.MDF)和逻辑日志名称(Student_LOG.LDF)的数据库Student。其默认路径如下:
  C:\Program Files\Microsoft SQL Server\MSSQL\Data\Student.mdf
  C:\Program Files\Microsoft SQL Server\MSSQL\Data\Student_log.ldf
  注意:上述三个格式中,第一种格式,(C:\Program Files\Microsoft SQL Server\MSSQL\Data\)上创建数据库。
  删除数据库的语句格式:
  DROP DATABASE <数据库名>[,<数据库名>,…]
  例如:建立数据库MyTestStudent,如果该数据库存在,则先删除,然后建立。
  IF OBJECT_ID ('MyTestStudent') IS NOT NULL
  SELECT OBJECT_NAME(OBJECT_ID('MyTestStudent')) '对象名称',
  OBJECT_ID('MyTestStudent') '对象ID'
  DROP DATABASE MyTestStudent
  GO
  CREATE DATABASE MyTestStudent
  说明:OBJECT_ID()函数用于返回对象的ID,若存在,则返回值为一个整数,否则为空值(NULL)。OBJECT_NAME()函数用于返回对象的名称,若存在,则返回值为一个名称字符串,否则为空串(“”)。输出对象的Id和名称可以使用如下SELECT语句:
  SELECT <表达式>[,…,<表达式>]
  创建数据表的语句格式:
  CREATE TABLE <数据表名>
  (<列名> <数据类型>[ <列级完整性约束条件> ]
  [,<列名> <数据类型>[ <列级完整性约束条件>] ] …
  [,<表级完整性约束条件> ])
  说明:
  <数据表名>:所要定义的数据表的名称;
  <列名>:组成数据表的各个数据项的名称;
  <列级完整性约束条件>:数据项的完整性约束条件;
  <表级完整性约束条件>:数据表的完整性约束条件;
  <数据类型>:数据项的数据类型。常用的数据类型如表8.1所示。
  表8.1 SQL Server 2008常用数据类型
  

BIT, SMALLINT, INT, BIGINT整型
MONEY, SMALLMONEY货币型
FLOAT,REAL浮点型
DATETIME, SMALLDATETIME日期时间型
IMAGE二进制图像型
CHAR(n)长度为n的字符型
 创建数据库Student的相应数据表Student、Course和StudentCourse的语句如下:
  CREATE TABLE Student(
  SNo CHAR(10) PRIMARY KEY NOT NULL,
  SName CHAR(20) NOT NULL,
  SSex CHAR(2),
  SAge INT) 或者
  CREATE TABLE Student(
  SNo CHAR(10) PRIMARY KEY NOT NULL,
  SName CHAR(20) NOT NULL,
  SSex CHAR(2),
  SAge INT CHECK (SAge>1 and SAge<100)) 或者
  CREATE TABLE Student(
  SNo CHAR(10) PRIMARY KEY NOT NULL,
  SName CHAR(20) NOT NULL,
  SSex CHAR(2),
  SAge INT,
  CONSTRAINT SAge1_100 CHECK (SAge>1 and SAge<100)) 或者
  CREATE TABLE Student(
  SNo CHAR(10) NOT NULL,
  SName CHAR(20) CONSTRAINT SName_NotNull NOT NULL,
  SSex CHAR(2),
  SAge INT,
  CONSTRAINT SNo_PK PRIMARY KEY(SNo),
  CONSTRAINT SName_Unique UNIQUE(sname),
  CONSTRAINT SAge1_100 CHECK (sage>1 and sage<100)) 或者
  CREATE TABLE Course(
  CNo CHAR(10) PRIMARY KEY NOT NULL,
  CName CHAR(20) NOT NULL,
  CCredit INT) 或者
  CREATE TABLE StudentCourse(
  SNo CHAR(10) NOT NULL,
  CNo CHAR(10) NOT NULL,
  Grade FLOAT,
  PRIMARY KEY (SNo, CNo),
  FOREIGN KEY (SNo) REFERENCES Student(SNo),
  FOREIGN KEY (CNo) REFERENCES Course(CNo))
  注意:在创建数据表之前,先使用USE语句打开相应的数据库。或者在SQL Server的管理工作室的工具栏的“可用数据库”下拉列表框中,选择相应的数据库。
  例如:打开数据库Student的语句为:USE Student
  技巧:在创建数据表之前,如果该数据表已经存在,可以先使用OBJECT_ID检测其存在性,若非空,则可以先删除该数据表,然后再建立。具体实现方法如下:
  例如:建立一个数据表MyTestStudent,即使该表存在,也可以建立。
  -- 测试数据表是否存在,如果若存在,则删除
  IF OBJECT_ID ('MyTestStudent') IS NOT NULL
  DROP TABLE MyTestStudent
  GO
  CREATE TABLE MyTestStudent(
  SNo CHAR(10) PRIMARY KEY NOT NULL,
  SName CHAR(20) NOT NULL,
  SSex CHAR(2),
  SAge INT)
  向数据表添加新数据项的语句格式:
  ALTER TABLE <表名>
  ADD <新列名> <数据类型> [ 完整性约束 ]
  例如:向Student增加“注册时间”列,其数据类型为日期型。
  ALTER TABLE Student ADD SEnrollment DATETIME
  例如:向Student的SName增加唯一性约束。
  ALTER TABLE Student ADD UNIQUE(SName) 或者
  ALTER TABLE Student ADD CONSTRAINT Un_SName UNIQUE(SName)
  修改数据表的数据项的语句格式:
  ALTER TABLE <表名>
  ALTER COLUMN <列名> <数据类型>
  例如:修改Student的SAge的类型为SMALLINT。
  ALTER TABLE Student ALTER COLUMN Sage SMALLINT
  删除数据表的数据项的语句格式:
  ALTER TABLE <表名>
  DROP COLUMN <列名> | CONSTRAINT <约束名称>
  例如:删除Student的数据项Senrollment。
  ALTER TABLE Student DROP COLUMN Senrollment
  删除数据表的数据项约束的语句格式:
  ALTER TABLE <表名>
  DROP CONSTRAINT <约束名称>
  例如:删除Student的SName的唯一性约束。
  ALTER TABLE Student DROP CONSTRAINT Un_SName
  删除数据表的语句格式:
  DROP TABLE <数据表名称>
  例如:删除数据表Student。
  DROP TABLE Student
  删除数据库的语句格式:
  DROP DATABASE <数据库名称>
  例如:删除数据库Student。
  DROP DATABASE Student
  注意:在删除数据库之前,先关闭要删除的数据库。方法是使用USE打开另外一个数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值