一.使用PIVOT和UNPIVOT命令的SQL Server版本要求 1.数据库的最低版本要求为SQL Server 2005 或更高. 2.必须将数据库的兼容级别设置为90 或更高. 3.查看我的数据库版本及兼容级别. 如果不知道怎么看数据库版本或兼容级别的话可以在SQL Server Management Studio新建一个查询窗口输入:print @@version,运行之后在我的本机上得到: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600…
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限.但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢.另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色. 如下截图所示.…
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_number2.rank3.dense_rank4.ntile 下面我们对这四个函数一一进行讲解 1.Row_Number函数可能row_number函数大家比较熟悉一些,因为它的用途非常的广泛,我们经常在分页与排序中用到它,它的功能就是在每一行中生成一个连续的不重复的序号(是不是和自增量有些像).下…
最近在维护一个ERP 做二次开发 ,在查找数据源的时候看到前辈写的SQL ,自己能力有限 ,就在网上找找有关这几个关键字的使用方法.做出随笔以做学习之用 T-SQL语句中,PIVOT命令可以实现数据表的列转行,UNPIVOT则与其相反,实现数据的行转列 一.使用PIVOT和UNPIVOT命令的SQL Server版本要求 1.数据库的最低版本要求为SQL Server 2005 或更高. 2.必须将数据库的兼容级别设置为90 或更高. 3.查看我的数据库版本及兼容级别. 如果不知道怎么看数据库版…
SQL Server 表的管理之_关于完整性约束的详解 一.概述: ●约束是SQL Server提供的自动保持数据库完整性的一种方法, 它通过限制字段中数据.记录中数据和表之间的数据来保证数据的完整性. ●SQL约束用于指定表中数据的规则. ●约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句). 1.1SQL创建约束 当使用CREATE TABLE语句创建表时,或者在使用ALTER TABLE语句创建表之后,可以指定约束.…
当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户. 数据库角色的成员可以分为如下几类: Windows用户组或用户账户 SQL Server登录 其他角色 SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色.除了数据库拥有者创建的角色之外,还有两类预定义的角色.这些可以创建的角色可以分为如下几类: 固定服务器 固定数据库 用户自定义 固定服…
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000系列操作系统一统天下的局面,在微软的操作系统上,没有任何一种数据库系统能与之抗衡,包括数据库领域中的领头羊甲骨文公司的看家数据库Oracle在内.不可否认,SQL Server最大的缺陷就是只能运行在微软自己的操作系统上,这一点是SQL Server的致命点.但在另一方面却也成了最好的促进剂,促使S…
1.Row_Number函数 row_number函数大家比较熟悉一些,因为它的用途非常的广泛,我们经常在分页与排序中用到它,它的功能就是在每一行中生成一个连续的不重复的序号 例如: select SM,row_number() over(order by SM desc) as ID from salary 注意:over条件中的order by 与 SQL中排序条件order by不冲突. 2.Rank函数该函数返回每行数据在结果集中的排名,如果有重复的排名,那么下一个排名与上一个排名就会断…
一.使用PIVOT实现数据表的列转行 建表语句: DROP TABLE STUDENT; CREATE TABLE STUDENT ( 学生编号 BYTE) NULL , 姓名 BYTE) NULL , 性别 BYTE) NULL , 所属班级 BYTE) NULL ) ; -- ---------------------------- -- Records of STUDENT -- ---------------------------- ', '李妹妹', '女', '初一 1班'); '…
远程连接sql server 2008 数据库,出现下面的错误: <--在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.    未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.     (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)--> 因为sql server 2008默认是不允许远程连接的,sa帐户也是默认禁用的,如果想要在本地用SSMS…