-
MSSQL中递归SQL查询语句实例说明-
一张表(ColumnTable)的结构如下图所示当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID递归实现SQL语句:复制代码代码如下:withznieyuas(selectc.Id,c...
数据库操作教程 2022-09-23 20:39:12 -
简单触发器的使用献给SQL初学者
首先,啰嗦几句废话如下: (1)触发器(trigger)是个特殊的存储过程,它的执行并不需要我们去显式调用,而是由一些事件触发,这有点类似C#中的事件处理机制。当使用UPDATE,INSERT 或DELETE的一种或多种对指定的数据库的相关表进行操作时,会触发触发器...
数据库操作教程 2022-09-23 20:38:55 -
SQLServer使用ADSI执行分布式查询ActiveDorectory对象
Step1:CreatingaLinkedServer.EXECsp_addlinkedserver'ADSI','ActiveDirectoryServices2.5','ADSDSOObject','adsdatasource'Step2:CreatingaSQLServerAuthenticatedLoginEXECsp_addlinkedsrvlogin@rmtsrvname=N'ADSI',@locallogin=NULL,@useself=N'False',@rmtuser=N'domainAccount',@rmtpassword=N'Password'对于SQLServer授权登录,可以使用sp_addlinkedsrvlogin系统存储过程配置用于连接到目录服务的适当的登录/密码.参考这里:http://blogs.msdn.com/euanga/archive/2007/03/22/faq-how-do-i-query-active-directory-from-sql-server.aspx如果SQLServer使用Windows授权登录,只需自映射就足以通过使用...
数据库操作教程 2022-09-23 20:36:34 -
sqlserverUnion和SQLUnionAll使用方法
SQLUNION操作符UNION操作符用于合并两个或多个SELECT语句的结果集。请注意,UNION内部的SELECT语句必须拥有相同数量的列...
数据库操作教程 2022-09-23 20:36:16 -
SQLServer中的死锁说明
两个进程发生死锁的典型例子是:进程T1中获取锁A,申请锁B;进程T2中获取锁B,申请锁A,我们下面动手来演示一下这种情况:1.创建一个Database,名为InvDB。2.执行下面脚本创建person表并填充两条数据:3.在SQLServerManagementStudio的两个窗口中同时执行下面的查询:这段代码在默认的READCOMMITTED隔离级别下运行,两个进程分别在获取一个排它锁的情况下,申请对方的共享锁从而造成死锁...
数据库操作教程 2022-09-23 20:35:16 -
几个扩展存储过程使用方法
SQLServer中包含了几个可以访问系统注册表的扩展存储过程.但实际上这几个扩展存储过程是未公开的,从sqlserver7.0就有了,在SQLserver2000中仍然保留,他们以后可能会删除.但是这几个存储过程却提供了在当前的SQLServer版本中访问系统注册表的能力,而且很多人利用SQLServer来进行攻击系统时,往往都会用到这几个扩展存储过程.所以最好在SQLServer中禁用他们.xp_regenumvalues以多个记录集方式返回所有键值使用方法:xp_regenumvalues注册表根键,子键比如说,想看看HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun的所有键值:usemasterexecxp_regenumvalues'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindowsCurrentVersionRun'execxp_regenumvalues'HKEY_LOCAL_MACHINE','SYSTEMRAdminv2.0ServerParameters'xp...
数据库操作教程 2022-09-23 20:35:02 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
SQL集合函数中casewhenthen使用技巧
那么在集合函数中它有什么用呢 ?假设数据库有一张表名为student的表。如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省男女个数怎么写SQL语句?即要生成下结果表答案是:selectsex,count(caseprovincewhen'广东省'then'广东省'end)as广东省,count(caseprovincewhen'江西省'then'江西省'end)as江西省,count(caseprovincewhen'浙江省'then'浙江省'end)as浙江省fromstudentgroupbysexcount()函数即根据给定的范围和groupby(统计方式)而统计行数据的条数我们一步步来理解上面语句1. selectsex fromstudent(查询数据表中的存在的男女条数)2.selectsex,count(*)asnumfromstudentgroupbysex (查询表中男女数量)3.selectsex,province,count(*)asnumfromstudentgroupbysex,province(查询各...
数据库操作教程 2022-09-23 20:32:47 -
sqlserver多库查询sp_addlinkedserver使用方法(添加链接服务器)
Execsp_droplinkedsrvloginZYB,Null--删除映射(录与链接服务器上远程登录之间的映射)Execsp_dropserverZYB--删除远程服务器链接EXECsp_addlinkedserver@server='ZYB',--被访问的服务器别名@srvproduct='',@provider='SQLOLEDB',@datasrc="/Server2"--要访问的服务器EXECsp_addlinkedsrvlogin'ZYB',--被访问的服务器别名'false',NULL,'sa',--帐号'sa'--密码使用实例:Select*fromZYB.CDCenter20110822...
数据库操作教程 2022-09-23 20:32:35 -
sqlserver局部变量的使用
A.使用DECLARE下例使用名为@find的局部变量检索所有姓以Ring开头的作者信息。复制代码代码如下:Usepubsdeclare@findvarchar(30)set@find='Ring%'selectau_lname,au_fname,phonefromauthorswhereau_lnamelike@find@find就是一个局部变量...
数据库操作教程 2022-09-23 20:32:23 -
SQL学习笔记六union联合结果集使用
联合结果集新建临时工数据表复制代码代码如下:CREATETABLET_TempEmployee(FIdCardNumberVARCHAR(20),FNameVARCHAR(20),FAgeint,PRIMARYKEY(FIdCardNumber));INSERTINTOT_TempEmployee(FIdCardNumber,FName,FAge)VALUES('1234567890121','Sarani',33);INSERTINTOT_TempEmployee(FIdCardNumber,FName,FAge)VALUES('1234567890122','Tom',26);INSERTINTOT_TempEmployee(FIdCardNumber,FName,FAge)VALUES('1234567890123','Yalaha',38);INSERTINTOT_TempEmployee(FIdCardNumber,FName,FAge)VALUES('1234567890124','Tina',26);INSERTINTOT_TempEmployee(FIdCardNumb...
数据库操作教程 2022-09-23 20:31:05