临近年终,在工作之余对工作和学习中遇到的问题以及常用的一些知识点做了些整理,以备后用。本文涉及的内容为数据库,算是对开发总结(1)—数据库一文的补充。

1 对于主键设置了Identity的表,在删除表中数据后再往表中插入数据,Identity列不是从1起始了,如果想删除数据后Indentity列仍从1起始,可以用下面代码来删除数据。

truncate table tablename
DBCC CHECKIDENT(tablename,RESEED,1)

2 判断指定表在数据库中是否存在

if exists(select name from sysobjects where name='tablename' and type='u')

3 判断指定列在指定表中是否存在

if exists(select * from sys.columns,sys.tableswhere sys.columns.object_id = sys.tables.object_idand sys.tables.name='tablename' and sys.columns.[name]='columnname')

4 在编写代码生成器之类的程序的时候,通常需要取出数据库中所有的表名以及表中字段的一些基本信息,如字段长度、字段类型、描述等。实现上面要求的sql语句如下:

--取数据库中表的集合
select * from sysobjects where xtype='u' order by name--取表中字段的一些基本信息
selectsys.columns.name,  --字段名sys.types.name as typename, --字段类型sys.columns.max_length,    --字段长度sys.columns.is_nullable,    --是否可空(selectcount(*)fromsys.identity_columnswheresys.identity_columns.object_id = sys.columns.object_idandsys.columns.column_id = sys.identity_columns.column_id) as is_identity ,--是否自增(selectvaluefromsys.extended_propertieswheresys.extended_properties.major_id = sys.columns.object_idandsys.extended_properties.minor_id = sys.columns.column_id) as description  --注释
fromsys.columns, sys.tables, sys.types
wheresys.columns.object_id = sys.tables.object_id
andsys.columns.system_type_id=sys.types.system_type_id
andsys.tables.name='tablename'
order by sys.columns.column_id

5 在存储过程中使用事务

create procedure procname
as
begin tran--执行sql语句if @@ERROR!=0
beginrollback tran   --失败
end
else
begincommit tran   --成功
end  

6 清除数据库日志

DUMP TRANSACTION DatabseName WITH NO_LOG
BACKUP LOG DatabseName WITH NO_LOG
DBCC  SHRINKFILE(DatabseLogName,1)
--DatabseName为数据库名称
--DatabseLogName为日志文件名,可以通过下面语句得到
--select name from sysfiles 

还有一种比较简单的方法是分离数据库,删除日志文件,再附加数据库,这样产生的日志文件只有500多k。


下面介绍几个常用的系统存储过程和函数

7 db_name() 得到数据库名称

select db_name()
Test
(1 行受影响)

8 object_id 可以得到对象在系统中的编号,对象包括表、视图、存储过程等。如果不存在返回null,所以也可以用来判断表是否存在。

select object_id('objectname')
--判断表是否存在
if  object_id('tablename') is not null

9 sp_helptext 用来得到视图、存储过程等对象的文本,可以很快速找到,不过会改变视图或存储过程的格式。所以这个系统存储过程我通常都是用来查看,如果要修改一个存储过程我还是会通过树形菜单去找到存储过程然后修改保存。

sp_helptext 'objectname'

10 parsename,可以得到对象名称的指定部分,该函数有两个参数,第一个为对象名称,第二个为指定部分的代号。

select parsename('oec2003.databasename.dbo.tablename',1)
--对象名称返回tablename
select parsename('oec2003.databasename.dbo.tablename',2)
--Schema名称返回dbo
select parsename('oec2003.databasename.dbo.tablename',3)
--数据库名称返回databasename
select parsename('oec2003.databasename.dbo.tablename',4)
--服务器名称返回oec2003

先就写这么多吧,后面整理出来的会陆续补上

转载于:https://blog.51cto.com/oec2003/1047317

SqlServer数据库的语句及一些操作整理相关推荐

  1. php sqlserver开发实例,Linux_用sql脚本创建sqlserver数据库范例语句,下面是创建一个sqlserver数据库 - phpStudy...

    用sql脚本创建sqlserver数据库范例语句 下面是创建一个sqlserver数据库的代码模板,加上一个创建表的模板.开发的时候可以拷贝过去直接改动一下就可以用了. 希望能帮上忙! 复制代码 代码 ...

  2. 建立学生选课表 mysql 语句_学生选课数据库SQL语句45道练习题整理及mysql常用函数(20161019)...

    学生选课数据库SQL语句45道练习题: 一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四 ...

  3. SqlServer数据库SQL语句(超详细)

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  4. MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...

    本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...

  5. sqlserver数据库练习3

    sqlserver数据库练习3 1 插入操作 (1)打开Microsoft SQL Server Management Studio,在对象资源管理器中选择数据库School1, 右击TInfo表,选 ...

  6. Python读取excel文件内容并保存到SqlServer数据库

      前面两篇文章<python调用openpyxl包操作excel文件>和<python调用pymssql包操作SqlServer数据库>学习了Python操作excel和Sq ...

  7. 计算机导论sql试题,数据库SQL语句练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  8. 数据库三级考mysql还是sqlse_计算机三级考试数据库SQL语句整理

    计算机三级考试数据库SQL语句整理 本文是关于计算机三级考试数据库SQL语句整理,包括创建数据库.删除数据库.备份sql server.创建新表等,供同学们参考学习!想了解更多相关信息请持续关注我们应 ...

  9. SQLServer数据库自增长标识列的更新修改操作

    SQLServer数据库自增长标识列的更新修改操作方法 在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列 ...

  10. C#操作SqlServer数据库的常用对象,及其方法

    首先放出所常用的对象: System.Data.SqlClient.SqlConnection System.Data.SqlClient.SqlCommand System.Data.SqlClie ...

最新文章

  1. 读书笔记 effective c++ Item 5 了解c++默认生成并调用的函数
  2. java 值对象_java 中设计模式(值对象)的实例详解
  3. 为什么都用m3u8_为什么中国人都喜欢用红砖盖房?
  4. linux mysql管理软件_8款适合Linux用户使用的数据库管理工具!
  5. python类与对象 封装继承与多态 0308
  6. 2021科技创新者大会:“武汉永远是一座造光之城”
  7. Oracle 存储大文本
  8. VC中连接mdb数据库及其数据读取方法
  9. 开发物体识别桌、_Tofu3 热红外可见光双光AI目标识别跟踪
  10. 为什么现在的很多酒店都不收押金,只收房费了?
  11. 格力市值3900亿,美的市值6300亿
  12. JavaScript数据类型之Number
  13. c++ pipe 同步 互斥_LiteOS内核教程04 | 信号量(任务同步)
  14. mybatis 通配符
  15. Windows 7 查看默认的本地 DNS 服务器地址
  16. oracle 查看用户日志,Oracle查看用户操作sql语句以及数据库日志
  17. 工程导论-----工程,技术与工程师
  18. 计算机科学与技术的现代化发展现状
  19. 初学华为HCIA笔记(一)
  20. js操作元素:改变元素内容有两种方式: interText 和 innerHTML的区别, 常用的元素的属性操作, 仿电脑系统时间问好 ,表单元素的属性操作 ,案例:仿京东显示隐藏密码 ,样式属性操作

热门文章

  1. Yii Framework2.0开发教程(7)账户注册开发
  2. idea导入一个工程后只显示pom文件_P1搭建第一个springboot应用
  3. Xcode更改Build输出路径
  4. 祝贺泰山JDK8开源
  5. gtk/gtk.h 没有那个文件或目录
  6. ‘gperf‘ is missing on your system.
  7. NPAPI最简单的代码
  8. 解决办法:GTK+ 2.x symbols detected
  9. 用imspost制作catia后处理_为什么我推荐你用3D打印技术制造模具?
  10. linux sed i参数,sed 慎用 -i 参数