日度归档:2018年7月3日

mssql sqlserver 维修计划中定时备份数据,出现”无法打开备份设备,出现操作系统错误5″的处理办法分享


摘要:
今日设置了数据库维护计划,但是当我运行错误时,确提示无法打开备份设备,出现操作系统错误5的信息。
实验环境:sqlserver 2008 R2


数据库无法备份文件,出现如下所示:
mssql_sqlserver-无法打开备份设备

mssql_sqlserver-无法打开备份设备



经过网上搜索大量资料发现,由于备份文件存放位置的文件系统为NTFS,导致当前操作账号无权限操作,所以出现”操作系统错误5″的异常提示信息。

处理方法
在目前硬盘上点击右键,依次点击 属性 安全,添加everyone的读写权限
mssql_sqlserver_磁盘驱动器权限设置

mssql_sqlserver_磁盘驱动器权限设置


——————————————————————————
重新运行”作业”,备份成功。

mssql mysql oracle 添加列、修改列、删除列的方法分享


摘要:
下文收集了三种常用的关系数据库添加列、修改列、删除列的常用语句。


列操作

列名变更:
sqlserver:exec sp_rename’tableName.[原列名]’,’新列名’,’column’;
MySQL: alter table tableName change 原列名 新列名 int;
Oracle:alter table tableName rename column 原列名 to 新列名 int;
———————————————————————–
增加列 sqlserver mysql oracle一致:
alter table tableName add column 列名 [列类型];
———————————————————————–
修改列属性 :
sqlserver:alter tableName alter column 列名 [新类型];
mysql:alter table tableName modify 列名 [新类型];
Oracle:alter table tableName modify 列名 [新类型];
———————————————————————–
删除列 sqlserver mysql oracle一致:
alter table 表名 drop column 列名;

mssql sqlserver 获取指定表索引信息的方法分享


摘要:
下文主要讲述:获取表中索引的方法



方法1:通过sp_helpindex 获取相关索引信息

sp_helpindex是系统存储过程,需输入表名作为参数,可获取指定表下的索引信息。

 sp_helpindex '表名'

mssql_sqlserver_sp_helpindex用法

mssql_sqlserver_sp_helpindex用法



方法2:通过 sysindexes sysobjects syscolumns对象获取索引信息,如下所示:

  SELECT  [索引名称] = a.name , [表名] = c. name , [索引包含列] = d .name , [索引号]=a .indid 
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   c.xtype='U'   and   c.status>0 -- 查所有用户表
AND c .name = '表名' --指定表名
ORDER BY c. name, a.name ,d.name


扩展阅读:
SELECT * FROM sys.sysindexes —查询整个数据库下的索引信息
oracle 查询索引信息:
select * from user_indexes where table_name=upper(‘表名’); –获取指定表索引信息
select * from user_ind_columns where index_name=(‘索引名称’); –获取索引编号
—-查询用户的索引
select index_name,table_name,tablespace_name,
index_type,uniqueness,status
from dba_indexes where owner=’所有者’;
—-查询用户的索引列
select index_name,table_name,column_name,
index_owner,table_owner
from dba_ind_columns
where table_owner=’所有者’;