sql server如何判断数据库是否存在
如何判断数据库是否存在 执行下列的SQL,获得一张表,根据表的行数来判断。
select * from master..sysdatabases where name=N'所查询的数据库名'
if exists(select * from master.dbo.sysdatabases where name = 'yexinwinners')
begin
drop database yexinwinners
print 'yexinwinners己存在,己被删除'
end
else
begin
create database yexinwinners
on primary
(
name = yexinwinners_mdf,
filename = 'c:\yexinwinners.mdf',
size = 10mb,
maxsize = 50mb,
filegrowth = 25%
)
log on
(
name = yexinwinners_ldf,
filename = 'c:\yexinwinners.ldf',
size = 10mb,
maxsize = 50mb,
filegrowth = 25%
)
print 'yexinwinners 数据库创建成功'
end
--建聚集索引
create clustered index index_yexinwinners
on tablename(column_name)
with fillfactor = 10
--建非聚集索引
create nonclustered index index_yexinwinners
on tablename(column_name)
with fillfactor = 10
--建视图
create view view_name
as
select * from pubs.titles(sql语句,任意)
--建检查视图
create view view_name
as
select * from pubs.titles(sql语句,任意)
with check option
--建加密视图
create view view_name
with encryption
as
select * from pubs.titles(sql语句,任意)
--建表
create table tablename
( ---(字段名,字段类型 自己任意)
stuID int not null identity(1,1) primary key,
stuName varchar(30) not null,
stuAge char(3) not null
)
--添加check约束
alter table tablename
add check(stuAge >0 and stuAge <100)
--添加外键
alter table tablename
add foreign key (stuName)
references Xtablename(stuName)
--添加唯一约束
alter table tablename
add unique(stuID) ---建事务
begin tranaction
update Xtable set Money = Money + 10000 where ID = 1
update Xtable set Money = Money - 10000 where ID = 3
if(@@error <> 0)
begin
print '转帐失败'
rollback transaction
end
else
begin
print '转帐成功'
commit transaction
end
--建游标
declare cursor_name Cursor
for select * from northwind.product
--建更新游标
declare cursor_name Cursor
for select * from northwind.product
for update
--建随意移动游标
declare cursor_name Cursor scroll
for select * from northwind.product
--使用游标
open cursor_name
--关闭游标
close cursor_name
--删除游标
deallocate cursor_name
--移动游标
fetch next -- 下一条记录
fetch last --最后一条记录
fetch first --第一条记录
fetch prior --上一条记录
fetch ABSOLUTE n -- 绝对位置 name = yexinwinners
EMail = yexin@cncmax.tj.cn
blog = blog.sina.com.cn/yexins
QQ = 306677309
SQL Server中判断数据库是否存在:
select * From master.dbo.sysdatabases where name='pubs'
最初安装 SQL Server 时,sysdatabases 包含 master、model、msdb、mssqlweb 和 tempdb 数据库的项。该表只存储在 master 数据库中。
但在实际使用中,需判断Status状态位:
其中某些状态位可由用户使用 sp_dboption(read only、dbo use only、single user 等)进行设置:
1 = autoclose;使用 sp_dboption 设置。 数据库完全关闭,其资源在最后一个用户注销后释放。
4 = select into/bulkcopy;使用 sp_dboption 设置。允许使用 Select INTO 语句和快速大容量复制。
8 = trunc. log on chkpt;使用 sp_dboption 设置。如果数据库处于日志截断模式,则检查点将截断日志中非活动的部分。只能为 master 数据库设置此选项。16 = torn page detection,使用 sp_dboption 设置。可以检测残缺页。
32 = loading。
64 = pre recovery。
128 = recovering。
256 = not recovered。
512 = offline;使用sp_dboption 设置。数据库将处于脱机状态。
1024 = read only;使用 sp_dboption 设置。用户仅能读取数据库中的数据而无法对其进行修改。
2048 = dbo use only;使用sp_dboption 设置。只有数据库所有者可以使用数据库。
4096 = single user;使用 sp_dboption 设置。每次只能有一个用户访问数据库。
32768 = emergency mode。
4194304 = autoshrink。
1073741824 = cleanly shutdown。
可以同时打开多个位。
譬如:判断一个数据库是否offline
select * From master.dbo.sysdatabases where name='pubs' and status<>512
SQL Server中判断表对象是否存在:
select count(*) from sysobjects where id = object_id('数据库名.Owner.表名')
if exists
(select count(*) from sysobjects where id = object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
SQL Server中判断表中字段是否存在:
if exists(select * from syscolumns where name='colname1' and id=object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
代表表tablename1中存在colname1字段
例:
select * from syscolumns where name='Test' and id=object_id('dbo.test')
Access中判断表对象是否存在:
其实,Access数据库也有系统表,存放有对象名
Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名');
判断数据库和表是否存在
if not exists(select 1 From master.dbo.sysdatabases where name=N'JZKStarCfg')
sql server如何判断数据库是否存在的更多相关文章
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- SQL Server中查询数据库及表的信息语句
/* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...
- SQL SERVER 2005修改数据库名称,包括物理文件名和逻辑名称
SQL SERVER 2005修改数据库名称,包括物理文件名和逻辑名称 原来数据库名称为 aa,物理文件名称为 aa.mdf 和 aa_log.ldf: 需要修改数据库名称为 bb,物理文件名 ...
- SQL Server 维护计划实现数据库备份(策略实战)
一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...
- Sql Server系列:数据库组成及系统数据库
1. 数据库组成 数据库的存储结构分为逻辑存储结构和物理存储结构. ◊ 逻辑存储结构:说明数据库是由哪些性质的信息所组成.SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息 ...
- SQL Server 2008 master 数据库损坏解决总结
SQL Server 2008 master数据库损坏后,SQL SERVER服务启动失败,查看错误日志,你会看到下面错误信息: 2015-10-27 10:15:21.01 spid6s ...
- SQL Server删除distribution数据库二
以前总结过一遍博文SQL Server删除distribution数据库,里面介绍了如何删除distribution数据库.今天介绍一个删除distribution的特殊案例, 在这之前,我不知道这个 ...
- SQL SERVER 2012 修改数据库默认位置不立即生效
今天修改SQL SERVER 2012的数据库默认位置:即数据文件.日志文件默认位置时遇到一个问题,单击"服务器属性"(Server Properties)--> 数据库设置 ...
- SQL Server 2008 R2数据库镜像部署
概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在 ...
随机推荐
- spring cloud微服务快速教程之(六) 应用监控 spring boot admin
0-前言 当我们发布了微服务后,我们希望对各个应用的各个运行状况进行一个监控:这个时候spring boot admin,就出场了: spring boot admin:是一个监控和管理spring ...
- Win10删除桌面上的回收站、计算机、网络等图标
解决方案: 桌面上鼠标右键,选择个性化 个性化窗口左边侧栏选择主题 移动至最下方点击"桌面图标设置"即可看到系统中的五个桌面图标
- VMware上安装Kali Linux 超详细教程
一.下载镜像文件 下载好系统对应镜像文件 https://www.kali.org/downloads/ 二.创建新的虚拟机 1.创建新的虚拟机 我们使用自定义的配置方法. 2.添加镜像文件的路径 ...
- 【转】8 个效果惊人的 WebGL/JavaScript 演示
英文原文:9 IMPRESSIVE WEBGL JAVASCRIPT EFFECT SHOWCASE,翻译:iteye WebGL 是一种 3D 绘图标准,这种绘图技术标准允许把 JavaScript ...
- C#实现DataTable转为Excel文件
实现DataTable转为Excel文件,和上次分享的Excel文件转为DataTable互为反操作.DataTable转化为Excel文件是通过传入一个DataTable类型的参数,然后将传入的Da ...
- await Task.Yield()和await Task.CompletedTask有什么不同
有时候我们在代码中要执行一些非常耗时的操作,我们不希望这些操作阻塞调用线程(主线程)的执行,因为调用线程(主线程)可能还有更重要的工作要做,我们希望将这些非常耗时的操作由另外一个线程去执行,这个时候就 ...
- input 只允许输入小数
oninput = "value=value.replace(/[^\d]/g,'')" 输入浮点数不好使 突发奇想自己写一个与众不同的... oninput="valu ...
- React Hooks 实现和由来以及解决的问题
与React类组件相比,React函数式组件究竟有何不同? 一般的回答都是: 类组件比函数式组件多了更多的特性,比如 state,那如果有 Hooks 之后呢? 函数组件性能比类组件好,但是在现代浏览 ...
- POJ Muddy Fields 泥泞的牧场 二分图
Muddy Fields Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13235 Accepted: 4879 汪星人 ...
- Scheme实现数字电路仿真(2)——原语
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/12045295.html 作者:窗户 ...