随笔分类 - 数据库 MS SQL
Sql2008数据库转到sql2005
摘要:这个问题耽误了一天时间,从网上找了好多方法,终于可以搞定了。现在把我收集的方法给大家分享一下。建议先使用第四个方法,可能是数据库太大了,前三个方法我的都没有成功,第四个方法虽然也有失败的,但总算转换过去了。解决方法一:脚本生成(笨方法)sql08导出的脚本在05下兼容性不行,执行的时候会报错。1、 ...
阅读全文
SQL Server 触发器
摘要:触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。Ø 什么是触发器触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有cre
阅读全文
一列保存多个ID(将多个用逗号、特殊符号 隔开的ID转换成用逗号隔开的名称)
摘要:背景:在做项目时,经常会遇到这样的表结构在主表的中有一列保存的是用逗号隔开ID。如,当一个员工从属多个部门时、当一个项目从属多个城市时、当一个设备从属多个项目时,很多人都会在员工表中加入一个deptIds VARCHAR(1000)列(本文以员工从属多个部门为例),用以保存部门编号列表(很明显这不符合第一范式,但很多人这样设计了,在这篇文章中我们暂不讨论在这种应用场景下,如此设计的对与错,有兴趣的可以在回复中聊聊),然后我们在查询列表中需要看到这个员工从属哪些部门。初始化数据:部门表、员工表数据:IF EXISTS (SELECT * FROM sys.objects WHERE objec.
阅读全文
SQL2008 转 2000(高版本转换到低版本)
摘要:1. 生成for 2000版本的数据库脚本2008 的manger studio-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例-- 右键要转到2000的库-- 任务-- 生成脚本-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库-- 勾选"为所选数据库中的所有对象编写脚本"-- 在接下来的"选择脚本选项"中, 将”编写创建数据库的脚本”设为True,找到"为服务器版本编写脚本"项, 选择"SQL Server 2000&quo
阅读全文
长数字隔三位用逗号","隔开,保留两位小数,指定长度,不足补空格
摘要:长数字隔三位用逗号","隔开select to_char(1234.45,'9g999g999'),length(to_char(1234.45,'9g999g999')) from dual;执行结果: 1,234 10保留两位小数select to_char(1234.45,'9g999g999d00'),length(to_char(1234.45,'9g999g999d00')) from dual;执行结果: 1,234.45 13select to_char(0.40,'9g999g999d
阅读全文
SQL2005 SQL2008 远程连接配置方法
摘要:第一步(SQL2005、SQL2008):开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准) 的协议-->TCP/IP-->右键-->启用第二步:SQL2005:开始-->程序-->Microsoft SQL Server 2005-->配置工具-->SQL Server 2005外围应用配置器-->服务和连接的外围应用配置器 -->
阅读全文
SQL面试题
摘要:(一)1.写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)select top 10 * from A where id not in (select top 30 id from A)解2: select top 10 * from A where id > (selectmax(id) from (select top 30 id from A )as A)2.写sql语句实现下列查询(表)ta b(列)1 21 31 42 12 23 14 15 35 2查询结果要求a b1 22 13 14 15 2
阅读全文
sql 自定义 截取字符串字符
摘要:--SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 create function f_split(@c varchar(2000),@split varchar(2)) returns @...
阅读全文
多行 并 一行查询
摘要:select count( case when status='1' then number1 end) as '检查不及格', count(case when status='2' then number1 end) as '终止作废', sum( case when status='3' then number2 end) as '遗失作废' from table1
阅读全文
使用PowerDesigner 设计SQL Server 数据库
摘要:工具:SybasePowerDesigner 12.5Microsoft SQL Server 2005 第一步:概念数据模型打开PowerDesigner 软件,设计“概念数据模型”(Conceptual Data Model),它通常用在概要设计阶段。 设计表结构注意:如果Palette(工具面板)没有显示,可以在工具栏 -- 右键 -- 选择“Palette”(打勾选中) 设计结果如下:在设计属性(字段)的时候,三个字母(M、P、D)分别表示:M:是否为空;(√表示不允许为空)P:是否为主键;D:是否在该软件的视图中显示; 添加 “Relationship” 关系时,请注意:1、在
阅读全文
SQL 分页存储过程
摘要:declare @pc int declare @c int exec SP_SqlFenYe @tblName='DetailedInfo',@fldName='*',@pageSize=10,@page=1,@fldSort='TJtime',@ID='ID', @Sort=0,@strCondition='len(ID)=2', @pageCount=@pc out , @Counts=...
阅读全文
SQL Case 的应用
摘要:create table test(Date varchar(50) null, Result varchar(50) null) insert into test values('1900-1-1','胜') insert into test values('1900-2-1','胜') insert into test values('1900-1-1','负') insert into ...
阅读全文
sql中case when then使用实例
摘要:TABLE [Test] ( [id] [int] IDENTITY (1, 1) NOT NULL , [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [subject] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Source] [numeric](18, 0) NULL ...
阅读全文
SQL利用Case When Then多条件判断SQL 语句
摘要:Select top 100 State,JoinState, (case when State=1 and Joinstate=0 then 2 when State=1 and JoinState=1 then 1 else 0 end) as usestate from UserInfo (2) select ID,Username,namer=(case when(sc...
阅读全文
Excel 导入数据库
摘要:default.aspx.csusing System.Data.OleDb;using System.mySQLConnection;using System.Data.SqlClient;public DataSet ExecleDs(string filenameurl,string tabl...
阅读全文