MS-SQL
名贤集
这个作者很懒,什么都没留下…
展开
-
SQL 递归查询所有父子节点
sql 递归查询原创 2016-05-16 22:57:16 · 30398 阅读 · 6 评论 -
SQL OUTPUT 语句的用法
以上是表soloreztest的原始内容使用output子句对其进行操作A. 将 OUTPUT INTO 用于简单 INSERT 语句 以下示例将行插入soloreztest表,并使用 OUTPUT 子句将语句的结果返回到 @mytable table 变量中 declare @mytable table( id int identity(1,1) primary原创 2013-03-07 09:17:41 · 6946 阅读 · 0 评论 -
SQL Server 2005新特性之使用with关键字解决递归父子关系(详细)
1. 引言现实项目中经常遇到需要处理递归父子关系的问题,如果把层次关系分开,放在多个表里通过主外键关系联接,最明显的问题就是扩展起来不方便,对于这种情况,一般我们会创建一个使用自连接的表来存放数据。例如存放会员地区数据表结构可能是这样:列名描述location_id地区编号location_name地区名称原创 2013-01-21 21:03:15 · 1233 阅读 · 0 评论 -
SQL连接
在sql server中,我们经常能用到连接,今天总结一下连接的基础知识。连接的分类:交叉连接CROSS JOIN内连接INNER JOIN外连接{左外连接LEFT [OUTER] JOIN ;右外连接RIGHT [OUTER] JOIN;全外连接full [outer] join}自连接以下通过例子来了解各个连接的异同点:有两张表Teacher表和原创 2013-01-21 21:05:32 · 470 阅读 · 0 评论 -
SQL无限级查询,With 递归
在网上找了个SQL无限级查询,以树形显示的查询 ,没找到,自己写了一个,想到也有别的兄弟也可能遇到,拿出看看希望有所帮助下面两种 第一种:一般类型网上很多代码:with T as(select * from va where PID =0union allselect a.* from [va] a join T b on a.[PID] = b.CID原创 2013-01-15 15:21:13 · 3569 阅读 · 0 评论 -
SQL系统存储过程
系统存储过程 说明sp_databases 列出服务器上的所有数据库。sp_helpdb 报告有关指定数据库或所有数据库的信息sp_renamedb 更改数据库的名称sp_tables 返回当前环境下可查询的对象的列表sp_columns 回某个表列的信息sp_help 查看某个表的所有信息sp_helpconstraint 查看某个表的约束sp_helpindex原创 2013-01-24 20:17:30 · 443 阅读 · 0 评论 -
SQL全局变量
@@ERROR 最后一个T-SQL错误的错误号@@IDENTITY 最后一次插入的标识值@@LANGUAGE 当前使用的语言的名称@@MAX_CONNECTIONS 可以创建的同时连接的最大数目@@ROWCOUNT 受上一个SQL语句影响的行数@@SERVERNAME 本地服务器的名称@@TRANSCOUNT 当前连接打开的事务数@@VERSION SQL Ser原创 2013-01-24 20:14:41 · 902 阅读 · 0 评论 -
sp_executesql介绍和使用
sp_executesql介绍和使用execute相信大家都用的用熟了,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的,如: exec sp_executesql @sql, N'@count int out,@id varchar(20)', @cou out ,@i原创 2013-01-07 12:08:27 · 499 阅读 · 0 评论 -
SQL事务
一、事务概念 事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。 二、事务属性事务4大属性:1 原子性(Atomicity):事务是一原创 2012-11-23 10:50:12 · 689 阅读 · 1 评论 -
SQL语句数据库分离、附加
数据库分离ALTER DATABASE DB SET SINGLE_USER WITH ROLLBACK IMMEDIATEEXEC sp_detach_db DB附加EXEC sp_attach_db @dbname = 'DB', @filename1 = 'H:\Medinice\DB.mdf',@filename2='H:\Medinice\DB原创 2012-11-12 16:08:55 · 2454 阅读 · 0 评论 -
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"
1.将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem 。2. management studio--->服务器对象-->链接服务器-->Microsoft.Jet.OLEDB.4.0-->右键属性-->访问接口选项:全都不选原创 2012-11-05 10:39:59 · 1115 阅读 · 0 评论 -
SQL导出CSV
CREATE TABLE Party( PartyID VARCHAR(10), PartyName VARCHAR(10)) INSERT INTO Party VALUES('000001','DV') INSERT INTO Party VALUES('000002','AC') INSERT INTO Party VALUES('000003','KE'原创 2013-02-22 14:40:00 · 1022 阅读 · 0 评论 -
SQL 一列转一行
create table tb(name varchar(1))insert into tb values('a') insert into tb values('b') insert into tb values('c')go--方法一declare @sql varchar(1000)set @sql = ''select @sql = @sql + t.name from原创 2013-03-16 14:51:47 · 1518 阅读 · 0 评论 -
SQL 日期格式转换
Sql中的getDate()2008年01月08日 星期二 14:59Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONV原创 2011-09-12 12:34:59 · 635 阅读 · 0 评论 -
FOR XML PATH多行合并到一行
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱原创 2016-01-26 14:24:02 · 3469 阅读 · 0 评论 -
SQL中添加唯一索引(非主键)
if OBJECT_ID('tempdb..#tem') is not null drop table #temcreate table #tem (aa nvarchar(20))alter table #tem add constraint UQ_aa unique (aa)insert into #tem(aa) values ('1')insert into #tem(原创 2014-09-10 13:33:57 · 832 阅读 · 0 评论 -
根据视图名称查询当前视图关联的所有表的所有字段
--视图显示的字段对应表SELECT * FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE WHERE VIEW_NAME = 'ViewCity'--根据表名字段名查询当前字段相关信息SELECT * FROM ( SELECT SysColumns.name AS ColumnName,SysTypes.name as ColumnType,SysC原创 2014-01-06 15:34:53 · 2097 阅读 · 0 评论 -
将Excel导入到数据库脚本
select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YSE;IMEX=1;DATABASE=E:\BinCard\UploadFiles\aaaaa.xls',[Sheet1$])select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel原创 2012-02-06 09:24:33 · 1928 阅读 · 0 评论 -
DATENAME和DATEPART
SELECT GETDATE() AS '当前日期'SELECT DATENAME(YEAR,GETDATE()) AS '年'SELECT DATENAME(month,GETDATE ()) AS '月'SELECT DATENAME(DAY ,GETDATE ()) AS '日'SELECT DATENAME(dw,GETDATE ()) AS '星期'SELECT原创 2013-08-18 10:57:50 · 1340 阅读 · 0 评论 -
SQL 函数 参数/功能相关说明
GETDATE() 返回系统目前的日期与时间DATEDIFF (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1DATEADD (interval,number,date) 以interval指定的方式,加上number之后的日期DATEPART (interval,date) 返回日期date原创 2013-08-18 11:21:13 · 901 阅读 · 0 评论 -
SQL 日期操作相关
--1.显示本月第一天SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) SELECT CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),120)+'01',120)--2.显示本月最后一天SELECT DATEADD(DAY,-1,CONVERT(DATETIME,CONVERT(VARCHAR(8),D原创 2013-08-18 11:12:42 · 1285 阅读 · 0 评论 -
SQL Server 下读取 表/字段 的说明备注信息
结果代码是: 建表后,设置表/字段的注释信息。下面是 读取表/字段 的说明备注 的 SQL 语句。 获取数据库表清单:select top 1000 ROW_NUMBER() OVER (ORDER BY a.object_id) AS No, a.name AS 表名, isnull(g.[value],'-') AS 说明from原创 2013-07-02 15:20:32 · 6344 阅读 · 0 评论 -
SQL Server系统表说明
sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoled原创 2013-07-02 15:22:44 · 808 阅读 · 0 评论 -
法初始化链接服务器 "(null)" 的 OLE DB 访问接口
问题: 在SQL服务器上用sa账号登陆后执行 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="d:\a.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$] 提示:原创 2012-08-09 10:49:54 · 1157 阅读 · 0 评论 -
分页SQL
SELECT * FROM ( SELECT *,ROW_NUMBER() OVER(ORDER BY ID ASC ) as ColumnsNumber FROM Products ) as ProductListWHERE ProductList.ColumnsNumber BETWEEN(@PageIndex*@PageSize+1) AND((@PageIndex+原创 2010-07-20 08:09:00 · 434 阅读 · 0 评论 -
MS-SQL 类型对应C#类型
序号类别SQLServerC Sharp备注1整数bitBooleanTrue转换为1False转换为02tinyintByteC Sharp 数据类型都位于System命名空间3smallint原创 2011-11-23 16:43:41 · 769 阅读 · 0 评论 -
sql left(),right()
SELECT RIGHT(title,2) FROM NewsSELECT LEFT(title,2) FROM NewsLEFT(title,2) 截取字符串前两个字符RIGHT(title,2) 截取字符串后两个字符原创 2011-09-17 11:33:56 · 631 阅读 · 0 评论 -
Sql ISNULL() 函数
使用指定的替换值替换 NULL。语法ISNULL ( check_expression, replacement_value ) 参数check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。原创 2011-08-18 17:02:03 · 357 阅读 · 0 评论 -
sql 语句 显示规则、默认值、未加密的存储过程
sp_helptext 显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本原创 2011-09-12 12:44:20 · 703 阅读 · 0 评论 -
@@ROWCOUNT,@@IDENTITY, SCOPE_IDENTITY()
@@ROWCOUNT 表示受影响的行数,常用在 Update,Insert,Delete @@IDENTITY 返回最后插入的标识值的系统函数.可以用在插入数据后把标识值返回(不是最好的选择) SCOPE_IDENTITY(); 应该使用这个方法原创 2011-09-12 12:13:51 · 615 阅读 · 0 评论 -
SELECT 赋值
declare @temp int;SELECT @temp=count(*) from 表名 把查询出来的值赋给@temp 变量原创 2011-09-12 12:11:11 · 458 阅读 · 0 评论 -
sql 语句查看SQL Server 版本
select @@version 查看SQL Server 版本原创 2011-09-12 12:09:39 · 580 阅读 · 0 评论 -
SQL2005(备份还原)出错:提示数据库正在使用,所以无法获得对数据库的独占访问权
SQL2005(备份还原)出错:提示数据库正在使用,所以无法获得对数据库的独占访问权解决方法配置当前数据库的属性,在数据库属性的【选项】选项卡中,设置【限制访问】参数为“Single”即可。原创 2011-09-08 13:32:13 · 3023 阅读 · 0 评论 -
sql日期格式化
0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM) 1 101 美国 mm/dd/yyyy 2 102 ANSI yy.mm.dd 3原创 2011-09-02 10:53:26 · 353 阅读 · 0 评论 -
判断数据库是否存在当前表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)原创 2011-07-22 10:32:59 · 846 阅读 · 0 评论 -
删除表中重复字段
删除表中多余的重复行(保留重复行主键ID最少的记录)delete 表名 where id not in (select min(id) from table1 group by 重复字段)原创 2011-07-08 14:14:41 · 417 阅读 · 0 评论 -
SQL Server DATEADD() 函数
定义和用法DATEADD() 函数在日期中添加或减去指定的时间间隔。语法DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。da原创 2011-08-22 11:16:19 · 372 阅读 · 0 评论 -
Reporting Services,无法完成当前操作,因为执行此报表所需的用户数据源凭据未存储在报表服务器数据库中
在部署完报表项目,打开报表时出现以下错误:无法完成当前操作,因为执行此报表所需的用户数据源凭据未存储在报表服务器数据库中.因为在部署报表时,ShareDataSource的凭据一定要输入sqlserver 的登录名和密码.原创 2011-10-10 17:43:41 · 4610 阅读 · 0 评论 -
SQL Server 读取Excel 2003
如何使用Sql读取Excel2003?具体例子如下:如何读取下面这个Excel?此表的路径为:d:\zl\student.xls其中的工作簿为info表格式如下:使用Sql读取如下:select *from openrowset( 'Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=d:\zl原创 2012-06-27 13:49:18 · 698 阅读 · 0 评论 -
日期函数相关
SELECT DATEADD(DAY, 1, '2012-1-1') --日期增加一天SELECT DATENAME(DAY, GETDATE()) --获取日期部分 返回字符串SELECT DATEPART(DAY, GETDATE()) --获取日期部分 返回整数SELECT DATEDIFF(DAY, '2012-1-1', GETDATE()) --计算两个日期相差天数原创 2012-04-23 20:43:39 · 439 阅读 · 0 评论