使用动态SQL创建数据库
/*其实我也搞不懂为什么要用SQL来创建,明明SQL Server有图形化创建数据库多省事啊!*/
USE master;
DECLARE @sqlstr nvarchar(max)
/*定义一个变量*/
DECLARE @database_name nvarchar(20) = 'MyDB';
/*这里输入需要创建的数据库名*/
DECLARE @file_name_d nvarchar(200) = CONVERT(sysname, SERVERPROPERTY('InstanceDefaultDataPath'))
/*这里是利用SQL Server的serverproperty这个函数来获取当前实例的默认数据文件位置和日志文件位置*/
DECLARE @file_name_l nvarchar(200) = CONVERT(sysname, SERVERPROPERTY('InstanceDefaultLogPath'))
/*微软官方参数介绍https://docs.microsoft.com/en-us/sql/t-sql/functions/serverproperty-transact-sql?view=sql-server-2017*/
IF DB_ID('MyDB') IS NOT NULL
BEGIN
PRINT 'Database ' +@database_name+' already exists'; --判断MyDB是否存在,存在的话就干掉,我也不知道为什么要这么写
DROP DATABASE MyDB; --还是手动删除吧,不使用脚本删除
END
ELSE
BEGIN
SET @sqlstr= 'CREATE DATABASE'+' '+@database_name+' '
SET @sqlstr = @sqlstr +'ON'
SET @sqlstr = @sqlstr +'('
SET @sqlstr = @sqlstr +'NAME = '+' '+@database_name+'_dat,'
SET @sqlstr = @sqlstr +'FILENAME = '+''''+@file_name_d+''+@database_name+'.mdf'','
SET @sqlstr = @sqlstr +'SIZE = 10,'
SET @sqlstr = @sqlstr +'MAXSIZE = 50,'
SET @sqlstr = @sqlstr +'FILEGROWTH = 5'
SET @sqlstr = @sqlstr +')'
SET @sqlstr = @sqlstr +'LOG ON'
SET @sqlstr = @sqlstr +'( NAME = '+' '+@database_name+'_log,'
SET @sqlstr = @sqlstr +'FILENAME = '+''''+@file_name_l+''+@database_name+'.ldf'','
SET @sqlstr = @sqlstr +'SIZE = 5MB,'
SET @sqlstr = @sqlstr +'MAXSIZE = 25MB,'
SET @sqlstr = @sqlstr +'FILEGROWTH = 5MB'
SET @sqlstr = @sqlstr +');'
Print (@sqlstr) -- 如果不想直接执行,使用使用print参数先把命令打印出来
--exec (@sqlstr); -- 执行直接上面生成的动态SQL
--Print 'Datbaase '+@database_name +' has been created using default data and log location in the server configuration!!'
/*打印已经创建成功的数据库名字*/
--Print 'Data file location = '+@file_name_d+@database_name+'.mdf';
/*打印创建的数据库的数据文件路径*/
--Print 'Log file location = '+@file_name_l+@database_name+'.ldf';
/*打印创建的数据库的日志文件路径*/
END
使用动态SQL创建数据库的更多相关文章
- 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍
第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...
- ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引
WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行 ...
- [LINQ TO SQL]使用LINQ TO SQL创建数据库
这篇博客将介绍如何使用LINQ TO SQL来创建数据库,以及如何映射Table之间的主外键关系. 我们的数据库表关系如下: Province与City之间1:M,City与Area之间1:M的关系. ...
- 2016年11月14日--SQL创建数据库、表-查、插、删、改
--创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...
- SQL创建数据库、建表、填入内容
--创建数据库 create database Information go --使用数据库 use Information go --创建表 create table Student ( Sno ) ...
- SQL创建数据库、表、存储过程及调用
--如果存在数据库PRogrammerPay 就删除 if exists (select * from sysdatabases where name='programmerPay') drop d ...
- sql 创建数据库并对数据库更改排序规则
use master -- 设置当前数据库为master,以便访问sysdatabases表 go if exists(select * from sysdatabases where name='t ...
- sql 创建数据库
CREATE DATABASE [NET_CN] ON PRIMARY( NAME=N'NET_CN',FILENAME= N'D:\Data\NET_CN.mdf',SIZE = 5120KB,MA ...
- birt-j脚本调试 & 动态sql的实现
一个比较好的birt问题解决网址: http://www.myexception.cn/h/1335919.html 1,Birt的JavaScript脚本简单调试 Birt中的js脚本不能用aler ...
随机推荐
- Linux MBR扇区误删恢复
目录 1. 引导记录误删恢复 1.1 备份引导记录 1.2 误删引导记录 1.3 恢复引导记录 2. 分区表误删恢复 2.1 备份分区表 2.2 误删分区表 2.3 恢复分区表 如果MBR分区表没了, ...
- 前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)
该迭代已作废,最新的请移步这里:https://www.cnblogs.com/GerryOfZhong/p/10726306.html 距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这 ...
- 详解C#委托和事件(二)
一.当我们使用关键字delegate声明一个自定义委托类型时,实际上是声明了一个该名称的类类型,继承自抽象类System.MulticastDelegate,还包含实例方法Invoke.BeginIn ...
- java遍历http请求request的所有参数实现方法
方法一: 通过程序遍历http请求的所有参数放到hashmap中,用的时候方便了. 如果参数值有中文,那么需要在程序中添加filter转码,或者在下面程序里,对paramValue转码 Map map ...
- 第一次项目上Linux服务器(五:CentOS7下Mysql数据库的安装与配置(转))
好像在CentOS 7系统中,默认安装的mysql是它的分支mariadb.所以不能像CentOS-6.3那样安装,如下: [root@izwz ~]# yum -y install mysql my ...
- React Router基础教程
React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...
- MVC删除操作前confirm提示
本段时间,忙于公司的ERP问题,博客也没有怎样更新了.昨晚于家中学习了MVC时,对删除记录前,让用户有后悔选择.即是说,能先给用户一个提示,然后再让用户决定是否删除记录.以前练习MVC,对删除记录,均 ...
- 记录数据库操作记录的DDL触发器
我们在项目中经常会对数据做一些操作,比如增加一个字段,修改一个存储过程,删除表等等操作,很有必要记录这些操作,以便以后出了问题,方便找到元凶.接下来介绍一个DDL触发器在实际环境中的使用,这个DDL触 ...
- 撩课-Web大前端每天5道面试题-Day32
1.module.export.import是什么,有什么作用? module.export.import是ES6用来统一前端模块化方案的设计思路和实现方案. export.import的出现统一了前 ...
- chomd文件权限授予
drwxr -x r- x 什么意思| | | | | | | | | | 12345678910 第一位表示文件类型.d是目录文件,l是链接文件,-是普通文件,p是管道第2-4位表示这个文件的属主拥 ...