1.ISNULL方法有两个参数,ISNULL(a,b),表达式含义为如果a为NULL,则设置该字段内容为b. 例如 table tab id sum 1 1 2 null select t.id,isnull(t.sum,0) from tab t 结果为 1  1 2  0…
PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 完整语法: table_sou…
在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环.自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归实现起来变的简单了. 本章我们主要演示如何利用with as功能实现一个简单的递归功能.在这之前先看一下cte的语法: [ WITH <common_table_expression > [ ,...n ] ]<common_table_expression >::=        e…
--如果存在则删除原有函数  IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL       DROP FUNCTION dbo.RegexReplace  GO  --开始创建正则替换函数   CREATE FUNCTION dbo.RegexReplace  (      @string VARCHAR(MAX),   --被替换的字符串      @pattern VARCHAR(255),  --替换模板      @replacestr VARC…
一.ISNULL语法格式 ISNULL ( check_expression , replacement_value ) 二.参数简介 check_expression:将被检查是否为 NULL的表达式,check_expression可以是任何类型的. replacement_value:在 check_expression 为 NULL时将返回的表达式,replacement_value 必须与 check_expresssion 具有相同的类型. 三.返回值 返回与 check_expre…
NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值NULLIF(Expr1,Expr2)如果Expr1和Expr2的值相等,返回NULL,否则返回Expr1的值…
介绍    我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法.按照微软所述,通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型. 这使得开发人员可以用任何CLR语言(如C#.VB.NET或C++等)来写存储过程.触发器和用户自定义函数. 我们如何实现这些功能呢?为了使用CLR,我们需要做如下几步:    1.在.NET中新建一个类,并…
/*************************************************** 作者:herowang(让你望见影子的墙) 日期:2010.1.5 注: 转载请保留此信息 更多内容,请访问我的博客:blog.csdn.NET/herowang ****************************************************/ /* 本次修改增加了unicode的支持,但是加密后依然显示为进制数据,因为进行RSA加密后所得到的unicode编码是无…
GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字.例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值. 世界上的任何两台计算机都不会生成重复的…
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候判断数据表是否存在,若存在则删除,会经常使用,特别是初始化的时候. --方法一 /*判断数据表是否存在,若存在则删除数据表*/ IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Table_Name') DROP TABLE Table_Name;…
一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? 1 2 3 4 5 6 7 8 IF EXISTS (  SELECT 1 FROM SYSOBJECTS T1  INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID  WHERE T1.NAME='A' AND T2.NAME='C'  )  PRINT '存在'  E…
SQL Server.Oracle和MySQL判断NULL的方法 本文讲述SQL Server.Oracle.MySQL查出值为NULL的替换. 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 Java代码  复制代码代码如下: ISNULL ( check_expression , replacement_value ) ISNULL ( check_expression , replacement_value )…
从sql server中导入/导出 excel 的基本方法 /*=========== 导入/导出 excel 的基本方法 ===========*/ 从excel文档中,导入数据到sql数据库中,很简单,直接用下面的语句: /*=============================================*/ --假如接受数据导入的表已存在 insert into 表 select * from openrowset(microsoft.jet.oledb.4.0 ,excel 5…
网址:http://blog.sina.com.cn/s/blog_63d0c97a0100qpy7.html 声明局部变量语法: DECLARE @variable_name DataType 其中 variable_name为局部变量的名称,DataType为数据类型. 给局部变量赋值有两种方法: 1.SET @variable_name=value 2.SELECT @variable_name=value 两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般…
SQL Server中解决死锁的新方法介绍 数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法. 将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁. <ccid_nobr> <ccid_code>use Northwindbegin tran insert into Orders(CustomerId) values(@#ALFKI@#) waitfor del…
1.通过工具"DTS"的设计器进行导入或者导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很…
 最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一…
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_helpuser 'public' -- 查询哪些用户拥有指定的系统role exec sp_helpsrvrolemember 'sysadmin' -- 可查询嵌套role WITH tree_roles as ( SELECT role_principal_id, member_principa…
熟练使用SQL Server中的各种使用方法会给查询带来非常多方便.今天就介绍一下EXCEPT和INTERSECT.注意此语法仅在SQL Server 2005及以上版本号支持. EXCEPT是指在第一个集合中存在,可是不存在于第二个集合中的数据. INTERSECT是指在两个集合中都存在的数据. 測试例如以下: create table t1(id int,mark char(2)) go create table t2(id int,mark char(2)) go insert into…
在SQL Server中调用 .NET 类库的方法要分为下面几步来实现: 在.NET中新建一个类库项目,并在这个项目中添加一个类文件,并把要被SQL Server调用的方法定义为公有的,静态的方法. 把这个项目编译为一个DLL. 在SQL Server中注册这个DLL. 通过使用SQL Server的函数来访问指定的.NET方法. 1: 在类库中编写方法,必须是静态公有的 public class CLRFunctions { public static string HelloWorld( s…
转自:http://www.cnblogs.com/CareySon/archive/2012/02/23/2365006.html SQL Server中灾难时备份结尾日志(Tail of log)的两种方法   简介 在数据库数据文件因各种原因发生损坏时,如果日志文件没有损坏.可以通过备份结尾日志(Tail of log)使得数据库可以恢复到灾难发生时的状态. 例如: 上图中.在DB_1中做了完整备份,在Log_1,Log_2处做了日志备份.在Log_2备份之后不久,发生了故障.从Log_2…
原文地址 SQL Server中变量的声明和使用方法 声明局部变量语法: DECLARE @variable_name DataType 其中 variable_name为局部变量的名称,DataType为数据类型. 给局部变量赋值有两种方法: 1.SET @variable_name=value 2.SELECT @variable_name=value 两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般用于从表中查询出数据然后赋给变量. 例如: DECLARE…
原文地址:http://blog.itpub.net/35489/viewspace-616459/ 在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下:  - 第一步:清空日志  DUMP TRANSACTION   databasename   WITH   NO_LOG  -- 第二步:截断事务日志  BACKUP LOG   databasename   WITH   NO_LOG  -…
当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如'1.23E+10'实际上是'12300000000'). 这并不是我们想要的结果,我们希望从Excel导入的数字还是数字字符串,而不是科学记数法. 在SQL Server中我们可以通过这个思路来将 科学记数法字符串 变为 数字字符串: 首先将 科学记数法字符串 转换为 FLOAT类型 接着将 FL…
1.[Sql Server](70)  SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))SELECT STR(@testFloat, 38, 2) 从Excel中导入到sql2000,有一列“联系方式”变成了float类型,我想转换成nvarchar类型,用下面的语句 select convert(nvarchar(30),convert(int,联系方式)) from employeego //数据溢出,不行! se…
在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为"自动收缩"外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下:  - 第一步:清空日志  DUMP TRANSACTION   databasename   WITH   NO_LOG  -- 第二步:截断事务日志  BACKUP LOG   databasename   WITH   NO_LOG  -- 第三步:收缩数据库  DBCC SHRINKDATABASE(databasename)…
在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下:  - 第一步:清空日志  ALTER DATABASE DATABASENAME SET RECOVERY SIMPLE;  -- 第二步:收缩数据库到1MB  DBCC SHRINKFILE (DATABASENAME_Log, 1) 需要说明几点:1. 上面的SQL命令需要按照顺序执行:2. 执行上面的命令通常比直接使用右键菜单中的“收缩…
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings name="  " connectionString="  "></connectionStrings >, connectionString代表数据库链接字符串,name代表你想要引用的时候查找的名称.(其实asp里的web.config配置方式也跟这…
先来介绍一下子服务器的基本情况,windows 2000 adv server 中文版,据称 打过了sp3,asp+iis+mssql .首先扫描了一下子端口,呵呵,开始的一般步骤. 端口21开放: FTP (Control)端口80开放: HTTP, World Wide Web端口135开放: Location Service端口139开放: NETBIOS Session Service端口1433开放: Microsoft-SQL-Server 开了几个很经典的端口,应该说个个都很经典啊…
SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()),…