SQL SERVER
「已注销」
这个作者很懒,什么都没留下…
展开
-
通过SQL语句设置或删除主键——CONSTRAINT用法
去除主键 Alter table 表名 Drop Constraint PrimaryKey 解释一下,上面的 PrimaryKey 是完整性约束条件的名字,Access数据库为主键约束默认取名PrimaryKey。当然如果主键约束被自己取了别的名字,这里也要做相应的改变了。 添加主键 A转载 2013-02-21 14:46:31 · 3488 阅读 · 0 评论 -
'CREATE FUNCTION' 必须是查询批次中的第一个语句。
我在创建一个函数之前先判断在数据库中是否存在此函数,如果存在则将其删除,然后再执行下面的Create...但是一执行就报错,报错内容如下:消息 111,级别 15,状态 1,第 12 行'CREATE FUNCTION' 必须是查询批次中的第一个语句。 解决方法如下:IF EXISTS(SELECT * FROM sysobjects WHERE id = obj原创 2014-03-23 16:20:23 · 13773 阅读 · 0 评论 -
sql server 判断表/视图/存储过程是否存在
--如果是实表可以用if exists (select * from sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[表名]--如果是临时表可以用(说明,如果用查找实表方法来打临时表会找不到.发布区别对代.)if转载 2014-02-17 15:31:02 · 700 阅读 · 0 评论 -
VS2010 64位系统 连接数据库时报“连接数据库 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”的错误 解决方法
在建立连接时,很简单的一段代码,却总是报错,确认代码是无误的,如下:public static SqlConnection getcon() { SqlCon = new SqlConnection(Str_sqlcon); //用SqlConnection对象与指定的数据库进行连接 SqlCon.Open(); //打开数据库连原创 2013-12-04 00:24:21 · 2949 阅读 · 0 评论 -
SQL Server中行列转换 Pivot UnPivot
PIVOT用于将列值旋转为列名(即行转列),在SQL Server2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN()) UNPIVOT用于将列明转为列转载 2013-09-11 00:53:29 · 1041 阅读 · 0 评论 -
SQL SERVER 在使用LEFT JOIN时, ON和WHRRE条件的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录原创 2013-11-02 22:42:47 · 1222 阅读 · 0 评论 -
SQL查询重复记录
假设现有一张人员表(表名:Person),若想将姓名、身份证号、住址这三个字段完全相同的记录查找出来,使用 1: SELECT p1.* 2: FROM persons p1,persons p2 3: WHERE p1.id 4: AND p1.cardid = p2.cardid 5: AND p1.pna转载 2013-01-24 10:18:00 · 686 阅读 · 0 评论 -
SQL UNION 和 UNION ALL 操作符
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column转载 2013-02-22 08:57:07 · 446 阅读 · 0 评论 -
OVER(PARTITION BY)函数介绍
OVER(PARTITION BY)函数介绍开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:1:over后的写法:转载 2013-04-20 11:37:12 · 773 阅读 · 0 评论 -
LEFT JOIN、RIGHT JOIN、FULL JOIN、INNER JOIN的区别以及用法
1 LEFT JOIN 关键字LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。LEFT JOIN 关键字语法SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=原创 2013-02-22 08:54:24 · 735 阅读 · 0 评论 -
解决创建分区时,出现的报错“没有为文件组"WR3" 分配文件。只有添加文件后,才能在此文件组上填充表、索引和text 列、ntext 列和image 列”
创建好了文件组、分区函数、分区方案、分区表之后,开始高高兴兴的去往分区表里插数据了,结果插入数据时遇到了这样的错误:消息622,级别16,状态3,第1行没有为文件组"WR3"分配文件。只有添加文件后,才能在此文件组上填充表、索引和text列、ntext列和image列。是不是很郁闷的说,这里的文件是什么文件呢?当然是数据库文件啦,为什么要创建数据库文件,这很好理解,因为分区的小原创 2013-10-29 20:44:59 · 4077 阅读 · 0 评论 -
SQL SERVER 取出 一张表中的每个分组中 的第一条数据 ,第一条数据是按照某种排序规则进行排序取的第一条
如题,方法很简单,只要一句话就可以解决:SELECT * FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY LineCode ORDER BY OnTime DESC) NewIndex FROM dbo.TPBOM WHERE LineCode IN (SELECT LineCode FROM dbo.TSho原创 2013-10-15 00:18:09 · 5786 阅读 · 0 评论 -
SQL2008 在一个表中指定的列位置插入一个新列的方法
肯定会有朋友遇到这种情况,想要在一个已建好的表中插入一列,此列的位置是自己指定的,那该如何做呢?下面我就附图说明来解决这个问题。 1、菜单栏——工具——选项——Designers——表设计器和数据设计器,将复选框的钩去掉,然后点击确定。 2、对象资源管理器——选择数据库——选择表,找到你要更改的表后,右键选择“设计”,之后直接在你想要插入的位置插入新列,然后保存,完毕。原创 2013-05-25 14:17:30 · 9645 阅读 · 0 评论 -
SQL Server创建索引
SQL Server创建索引 什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。同理,SQL Server允许用户在表中创建索引,指定按转载 2013-02-21 15:30:05 · 648 阅读 · 0 评论 -
什么情况下使用聚集索引或非聚集索引
下面的表总结了何时使用聚集索引或非聚集索引:动作描述使用聚集索引使用非聚集索引列经常被分组排序应应返回某范围内的数据应不应一个或极少不同值不应不应小数目的不同值应不应大数目的不同值不应应频原创 2014-06-17 11:58:00 · 3969 阅读 · 1 评论