随笔分类 - SQLSERVER使用
摘要:USE mastergo/*查询数据库是否存在*/select * From master.dbo.sysdatabases where name='Game_Card' and Status <>512/* 但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only、dbo use only、single user等)进行设置:1 = autoclose;使用 sp_dboption设置。数据库完全关闭,其资源在最后一个用户注销后释放。4 = select into/bulkcopy;使用 sp_dboptio
阅读全文
摘要:http://blog.csdn.net/maco_wang/article/details/6261639
阅读全文
摘要:其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程。也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录。说道删除数据记录,往往马上会想到的是delete和truncate语句,但在遇到在两个或多个表之间存在约束的话,这两个语句
阅读全文
摘要://sqlserver里的方法 //创建tab1,并导入tab2的结构和数据 select * into tab1 from tab2 //要表结构不要数据的方法 select * into tab1 from tab2 where 1=2 //在表结构已存在的情况下,复制tab2的数据到tab1 insert into tab1 select *from tab2 //还原表数据,包括自增长列也还原了 truncate table tab3 //删除表数据,但不还原自增长的标示 delete from table1 //oracle里的方法 //复制表结构不要数据的方法,...
阅读全文
摘要://查询所有表明select name from sysobjects where xtype='u'select * from sys.tables//查询数据库中所有的表名及行数SELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE (a.type = 'u') AND (b.indid IN (0, 1))ORDER BY a.name,b.rows DESC//查询所有的标明及空间占用量\行数selectobject_name(id)
阅读全文
摘要:比如:表A里面的一个字段叫做MOBILE 里面存的记录如下:123456781表B里面的一个字段也叫做MOBILE里面存的记录如下12341910(1)我们要查询一下A和B里面都有的,以前我使用的是selectA.mobile from A where A.mobile in (select B.mobile from B)出来结果为:11234没关系,去除重复就得到结果1,2,3,4了现在我们使用另外一种SQL呢:select A.mobile from A,B where A.mobile=B.mobile结果为1123411同样滤重得到结果1,2,3,4(2)第二个实验我们要取一下在A中
阅读全文
摘要:1.区分大小写select * from db1 where col1=’AbCdE’ collate Chinese_PRC_CS_AI--区分大小写select * from db1 where col1=’abCdE’ collate Chinese_PRC_CI_AI--不区分大小写2.如果想让服务器上所有的存储表都区分大小写就需要在安装服务器时设置服务器的排序规则或者 运行alter database db1 collate Chinese_PRC_CS_AI
阅读全文
摘要:在SQLite下我测试了SELECT 'A'+'B'结果为0select "A"+"1" 结果为1select "A"+1 结果为1select 2+1 结果为3感觉在“+”运算中,SQLite将字符串非数字串都当作0处理了加号就是针对数字的,所以应该用|| 来拼接字符串的结果select wid||word from table1;用这个拼接可以实现:select count(distinct clum1||clum2) from talbe1 多列的去重计数
阅读全文
摘要:问题:查询一个表(tb1)的字段记录不在另一个表(tb2)中 条件:tb1的字段key的值不在tbl2表中 ----------------------最原始的写法: select A.* from tbl1Awhere A.key not in (select key from tbl2)如果tbl2表中数据量很大,比如数据上百万条,每次都这样匹配效率会非常低。解决问题:SELECT tb1.* FROM tb1 LEFT JOIN tb2 ON tb1.id=tb2.id WHERE tb2.id IS NULL;关于sql语句中的连接(join)关键字,是较为常...
阅读全文
摘要:题目2问题描述:已知关系模式:S(SNO,SNAME) 学生关系。SNO为学号,SNAME为姓名C(CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE为成绩要求实现如下5个处理:1.找出没有选修过“李明”老师讲授课程的所有学生姓名2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“
阅读全文
摘要:sqlite适用的大小是多少?512KB-32Msqlite设置id自增长?sqlite的id列设置为integer类型就会自增长,或者加autoincrement标示
阅读全文
摘要:写以下几个存储过程:RegionUpdate: 多个参数CREATE PROCEDURE RegionUpdate(@RegionID INTEGER, @RegionDescription NCHAR(50))ASSET NOCOUNT OFFUPDATE RegionSET RegionDescription = @RegionDescriptionWHERE RegionID = @RegionIDGORegionDelete 一个参数CREATE PROCEDURE RegionUpdate(@RegionID INTEGER)ASSET NOCOUNT OFFDELETE FROM
阅读全文
摘要:1.判断要创建的表是否已经存在if exists (select * from sysobjects where id=OBJECT_ID(N'[dbo].[GetNdemoApplyDetail]')and OBJECTPROPERTY(id,N'IsUserTable')=1)2.判断要创建的存储过程是否已经存在if exists (select * from sysobjects where id=OBJECT_ID(N'[dbo].[存储过程名称]')and OBJECTPROPERTY(id,N'IsProcedure'
阅读全文
摘要:-- For tableEXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N'表名', NULL, NULL -- For columnEXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table',
阅读全文
摘要:alter procedure pGetInsertSQL (@tablename varchar(256))---WITH ENCRYPTIONasbegin---得到表中的SQL -- declare @tablename varchar(256) -- set @tablename = 'Design_DBPageStruct' --Create Table SQLtmp --( --sql varchar(4000) --)---Delete from SQLtmpif not exists (select * from dbo.sysobjects where id
阅读全文
摘要:数据库表间建立关系是为了约束数据,以满足它们之间的关系,在不满足表间建立的关系的情况下,不能进行数据的增删改操作。表间关系分为:一对一,一对多,多对多。一对一关系:关联的表中都只会存在一个关联项;一对多关系:关联的主表中只会存在一个关联项,从表中可以存在多个关联项;多对多关系:关联表和从表都可以存在多个关联项。
阅读全文
摘要:出现下图所示情况:解决方法:工具-选项-设计器-去掉(阻止保存要求创新创建表的更改)的勾选。如下图
阅读全文
摘要:因为这个数据库是不知道当时是那个版本创建的,在官方看了一下,解释说权限不对,应该把这个数据库放到SqlServer安装的目录下,也就是C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data,果然解决问题;不过总不能每次都把数据库放到这个目录下啊!所以又寻找了其他的解决方案;第一种解决方案:就是刚才的方法,把这个文件放到SqlServer默认位置下,不过最好不要放在C盘,万一那天重装系统,就玩完了,哈哈;第二种解决方案:就是更改Sqlserver实列的默认数据库文件夹,选中Sqlserver实例,右击属性,在左边有个“数据库设置”,点开后
阅读全文

浙公网安备 33010602011771号