使用动态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 ...
随机推荐
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...
- Andrew Ng机器学习课程笔记(三)之正则化
Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...
- 第七章 过滤器 Filter(二)
一 过滤器API 由容器实现的接口 –javax.servlet.Filter –javax.servlet.FilterChain –javax.servlet.FilterConfig 四个包装 ...
- 百度前端技术学院-task1.8源代码以及个人总结
通过这次任务的练习我学到了很多,现将所学到的以及遇到的问题总结如下. 源码地址:http://pan.baidu.com/s/1kVB2VZL 下面出现的代码,都是摘自这个上面的源码 1.终于明白了a ...
- C# 如何判断ie版本号和获取注册表中的信息
1.获取ie版本号 string ver = (new WebBrowser()).Version.ToString(); 例如:11.0.10586.103 int mainVer = (new W ...
- Async和await关键字的用法
async & await 的前世今生(Updated) 1. 方法打上Async关键字, 就可以使用await调用别的Async方法了 2. 记得在需要异步执行的方法里面调用await或者n ...
- C#基础知识回顾--委托事件
在上一篇看到他我一下子就悟了(续)---委托,被人狂喷.说写的太空,没有什么内容之类的.所以准备在这里重写下,不过还是按着以前的方式尽量简单的写.这里我们以打篮球为例. 第一步:首先,其他对象订购事件 ...
- Oracle面试的基本题
事务 事务的概念 事务就是对数据操作的一系列指令集合. 事务的四个特性 原子性 事务的操作要么全部成功,要么全部失败,如果有一个指令失败,那么事务回滚到初始状态. 一致性 事务的执行不能破坏数据的完整 ...
- 从实例角度分析java的public、protected、private和default访问权限
一.public 同一个package 1.本类内部 public class A { public int f=1; public void m1() {} public void m2() { f ...
- C#中Main函数为什么要static
假设没有static关键字,那意味着需要用生成一个实例后才可以调用这个Main方法,而Main方法是程序入口点,你没有进入Main方法,自然无法生成一个实例,既然没有实例,那就无法调用Main函数,岂 ...