标签归档:sql运维

mssql sqlserver 如何恢复触发器呢?


摘要:
下文讲述sqlserver中恢复触发器的方法分享,如下所示:

---恢复指定触发器的方法
ALTER TABLE [数据表名称] ENABLE TRIGGER [触发器名称]
 
 
---恢复一张数据表上所有触发器的方法
ALTER TABLE [数据表名称] enable TRIGGER all

mssql sqlserver 如何查看当前数据库”没有索引的数据表“?


摘要:
下文讲述使用sql查询没有设置索引的数据表的方法分享,如下所示:
实验环境:sql server 2008 R2


实现思路:
借助系统表sysobjects和sysindexes进行关联获取相应的无索引信息的数据表

 ---www.maomao365.com
---获取无索引的相关表

select * from sysobjects 
where id not in
(
   SELECT c.id FROM sysindexes a
JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid
JOIN sysobjects c ON b.id=c.id
JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid
WHERE a.indid NOT IN(0,255) 
)
and xtype ='u'
mssql_sqlserver_获取没有索引数据表的方法

mssql_sqlserver_获取没有索引数据表的方法

mssql sqlserver ALTER TABLE 修改表时,出现“因为有一个或多个对象访问此列”的修正方法分享


摘要:
下文讲述sqlserver中修改表时,出现“有一个或多个对象访问此列”的处理方法分享,如下所示:

今天修改数据表时,出现以下异常信息


消息 5074,级别 16,状态 1,第 2 行
对象’DF__TRTRTRTRTS_M__MAOMAO__R33343′ 依赖于 列’MAOMAO_WRITEDATE’。
消息 4922,级别 16,状态 9,第 2 行
由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN MAOMAO_WRITEDATE 失败。


J经过分析,我们发现出现这种情况,是由于数据表中有其它约束依赖此列,所以我们无法对列进行删除,那么下文将讲述具体的修正方法,如下所示:

方法1:通过SSMS设计器直接删除约束

1.在数据表上点击右键“设计表”
2.在设计窗体中,找到约束,然后保存表设置
3.再次运行删除列操作


方法2:通过sql脚本查询出脚本,然后删除约束

---获取列名上的约束信息
 declare @name sysname
select  @name =b.name from sysobjects b
  left join syscolumns a on b.id = a.cdefault 
where a.id = object_id('数据表名称') 
and a.name ='列名'

 ---根据获取的name,运行删除约束的脚本

exec('alter table 数据表名称 drop constraint ' + @name)