SQLSERVER 的一些常用知识总结(二)

最近工作又总结出了一些sqlserver的小知识,分享出来,大部分都是平时百度来的,也有些是从帮助文档或其他地方收集来的,这一篇作为上一篇的继篇
10.java事务和存储过程事务冲突的解决方法-事务点
 declare @INIT_TC int
 select @INIT_TC=@@TRANCOUNT
 set XACT_ABORT ON --设置下面
 if @INIT_TC = 0
     begin transaction xxxxxxxx
 else
     save transaction xxxxxxxx
    
 code........
 
 commit transaction    xxxxxxxx
 return 0
Error:
 rollback transaction xxxxxxxx
 
11.分布式查询开游标设置INSENSITIVE
Declare xxxx INSENSITIVE Cursor For ........
如不设置INSENSITIVE,报远程表不可更新。远程表上的可更新键集驱动游标要求事务具有扫过游标的 REPEATABLE_READ 或 SERIALIZABLE 隔离级别。
远程表上的游标不可更新,游标的敏感性行为定义了对基行(用于建立游标)所做的更新是否对游标可见。敏感性也定义了能否通过游标进行更新。
 
12.禁用/开启 所有触发器
--禁用所有表所有触发器   
exec sp_msforeachtable   'ALTER   TABLE   ?   DISABLE   TRIGGER   ALL'  
   
--开启所有表所有触发器   
exec    sp_msforeachtable   'ALTER   TABLE   ?   ENABLE   TRIGGER   ALL'  
 
13.禁用/启用 所有约束
--禁用所有外键约束   
sp_msforeachtable    "alter   table   ?   nocheck   CONSTRAINT   all"
 
--启用所有外键约束   
sp_msforeachtable    "alter   table   ?   check   constraint   all"  
 
14.查看常用对象
--查看所有的触发器
select a.name as TableName, b.name as TriggerName from sysobjects a,sysobjects b where b.parent_obj=a.id and a.xtype = 'U' and b.xtype = 'Tr'
--查看所有的视图
select name from  sysobjects where type= 'V' and name <> 'syssegments' and name <> 'sysconstraints'
--查看所有的存储过程
select name from sysobjects where xtype='P'
--查看所有的函数
select name from sysobjects where xtype='FN'
--查看所有的表
select name from sysobjects where xtype='U'
--查看所有的外键约束
select name    from sysobjects where xtype='F'
 
15.查看表的详情
exec sp_help '表名'
 
16.--修改数据库的名称
sp_renamedb '旧库名', '新库名'
 
17.--查看与某一个表相关的视图、存储过程、函数
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
 
18.--比较两表是否相等
if (select checksum_agg(binary_checksum(*)) from 表名1)=(select checksum_agg(binary_checksum(*)) from 表名2)
select '相等'
else
select '不等'
 
19.复制表结构
select top 0 * into 新表名 from 旧表名
使用这种方法插入临时表速度非常快
select * into #临时表名 from 表名
 
20.列出全部当前进程(当前连接数)
EXEC sp_who
21.sqlserver中的命令行shell
exec master.dbo.xp_cmdshell  'osql  -U  sa  -P  密码  -i c:/脚本.sql -d 库名'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值