随笔分类 -  SqlServer

摘要:Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用 阅读全文
posted @ 2013-06-04 11:37 xyzhuzhou 阅读(975) 评论(0) 推荐(0)
摘要:比如今天是:200-02-22运行如下语句所得到的结果不一样:select date('now')结果:2009-02-21 select datetime('now','localtime')结果:2009-02-22 00:52:04 --------------------------- 分隔线 --------------------------所以比较时用第二种语句才取得正确结果,例如(取大于现在时间的记录):select * from 表 where 日期字段>datetime('now','localt 阅读全文
posted @ 2013-05-20 22:58 xyzhuzhou 阅读(708) 评论(0) 推荐(0)
摘要:操作方法:先要安装好SQLServer2005,并且记住安装时自己设置的用户名和密码。下面以恢复SQLServer下备份的数据库文件epdmdb20101008.bak为SQLite数据库为例来说明操作的步骤。① 打开SQLServer2005,如下图所示:在登陆界面输入登录名和密码,点“连接”。登录之后的界面如下:② 新建一个数据库。点左边导航栏的数据库,右键-新建数据库;如下图所示:在弹出的新建数据库窗口中输入“数据库名称”,点“添加”。添加成功之后点确定。添加数据库时请注意:数据库名称必须为英文和数字的组合,不能出现汉字。添加成功之后,上图中左边的导航栏下方将出现刚刚添加的数据库名称。如 阅读全文
posted @ 2013-02-18 08:45 xyzhuzhou 阅读(1102) 评论(0) 推荐(0)
摘要:/// <summary> /// 将字符串中从n位开始以*代替 /// </summary> /// <param name="str">字符串</param> /// <param name="starIndex">开始位置</param> /// <returns></returns> public static string GetPingbStr(string str, int starIndex) { string strend = "& 阅读全文
posted @ 2012-12-27 01:02 xyzhuzhou 阅读(306) 评论(0) 推荐(0)
摘要:1 RESTORE FILELISTONLY FROM DISK ='F:\公司项目\2012年12月\k恺威寰宇解决方案\恺威寰宇Web\App_Data\xclh(1).bak'2 3 RESTORE DATABASE [xclh] 4 FROM DISK ='d:\Program Files\Microsoft SQL Server\MSSQL\data\xclh.bak'5 with 6 move 'xclh_Data' to 'd:\Program Files\Microsoft SQL Server\MSSQL\data\xc 阅读全文
posted @ 2012-12-19 00:19 xyzhuzhou 阅读(1372) 评论(0) 推荐(0)
摘要:用sqlserver身份验证<add key="ConnectionString" value="server=59.60.13.92;database=camping8;uid=camping8;pwd=Aa1284164!"/>用本地用户身份验证<add key="ConnectionString" value="Data Source=PCWIN7-PC\SQLEXPRESS;Initial Catalog=zzlt0525ftp;Integrated Security=True"/> 阅读全文
posted @ 2012-11-22 16:43 xyzhuzhou 阅读(352) 评论(0) 推荐(0)
摘要:SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名 增加自增序号列,不受分页影响 sqlserver2000不可以用 05以上的版本可以用。len(字段名) 获取字段的长度charindex('查找的字符','字段名称') 返回字符在字段中的位置从1开始STUFF('字段名称',从第几个开始,替换到第几个,'从开始替换的地方插入字符')以上三个函数的示例SELECT STUFF( Col_Title, charindex('|',C 阅读全文
posted @ 2012-11-09 12:30 xyzhuzhou 阅读(418) 评论(0) 推荐(0)
摘要:在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序"--把tableName和colName换成自己的就ok了--按拼音ALTER TABLE tableNameALTER COLUMN colName nvarchar(100) COLLATE Chinese_PRC_CI_ASselect *from tableName order by colName--按笔画ALTER TABLE tableNameALTER COLUMN colName nvarchar(100) COLLATE Chinese_PRC_St 阅读全文
posted @ 2012-10-19 17:56 xyzhuzhou 阅读(3228) 评论(0) 推荐(0)
摘要:解决Vista下安装msi提示2869错误无管理员权限的问题Vista下,如果开启了 UAC 的话,程序运行时,如果用到 administrator 管理员权限,通常会自动弹出提示框,或者 在程序的右键菜单中,会有一项 “以管理员身份运行”。而 msi 文件,却没有 “以管理员身份运行”这个选项,这就造成,如果msi需要管理员权限,就会报 2869 错误。怎么办?要解决这个问题,可以采用 ”曲线救国“ 的策略,利用一个 bat 文件包装一下 msi 来执行。咋样,这个方法比较巧妙吧?新建一个bat文件, 例如: install.bat, 在 bat文件内写入 msiexec /i msi文件的 阅读全文
posted @ 2012-09-07 13:03 xyzhuzhou 阅读(3527) 评论(0) 推荐(0)
摘要:Case具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其他' END这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面 阅读全文
posted @ 2012-08-20 15:17 xyzhuzhou 阅读(27915) 评论(0) 推荐(1)
摘要:Sqlite不需要安装即可使用。Access还需要安装Office组件(此问题待定,有疑问找http://www.cnblogs.com/nnhy/)。 Sqlite是不是那个System.Data.SQLite.DLL临时创建了数据库引擎?1.新建一个WinForm项目,引用System.Data.SQLite.DLL.界面如下 1.1 SQLiteConnection.CreateFile(“D:/Data.db3”);这样就可以创建一个数据库文件,名称随意。 封装成一个函数//创建一个数据库文件,保存在当前目录下HyData文件夹下 //CreateDB("HyData.db3 阅读全文
posted @ 2012-08-20 15:16 xyzhuzhou 阅读(361) 评论(0) 推荐(0)
摘要:declare tb cursor local forselect 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['+replace(name,']',']]')+']'',''dbo'''from sysobjects where xtype in('U','V','P','TR&# 阅读全文
posted @ 2012-07-30 15:54 xyzhuzhou 阅读(395) 评论(0) 推荐(0)
摘要:字符串函数:● ASCII('a')=97---返回字母a对应的ASCII码● CHAR('48')=0---返回48这个ASCII码对应的字符● LCASE('ABcdE')="abced" 或 LOWER('ABcdE')="abced"(将给定字符串转为小写)● UCASE('ABcdE')="ABCDE" 或 UPPER('ABcdE')="ABCDE"(将给定字符串转为大写)● LTRIM(' fgf 阅读全文
posted @ 2012-07-28 21:08 xyzhuzhou 阅读(270) 评论(0) 推荐(0)
摘要:01.-- 创建表,带主键 02.CREATE TABLE 新表名( 03. [fID] [int] IDENTITY(1,1) NOT NULL, 04. [fa] [int] NULL, 05. [fb] [smallint] NULL, 06. [fc] [tinyint] NULL, 07. [fd] [varchar] (60) NULL, 08. [fe] [nvarchar] (60) NULL, 09. [ff] [varbinary] (60) NULL, 10. CONSTRAINT 主键名 PRIMARY KEY CLUSTERED 11. ... 阅读全文
posted @ 2012-07-27 10:33 xyzhuzhou 阅读(631) 评论(0) 推荐(0)
摘要:DUMP TRANSACTION 库名 WITH NO_LOG 阅读全文
posted @ 2012-07-23 18:21 xyzhuzhou 阅读(232) 评论(0) 推荐(0)
摘要:现有数据库a和数据库b,数据库a里有表table1,数据库b里有表table2.现在要把表table1里的记录复制到table2中,不同情况采用不同方法:1. table1和table2表结构相同use binsert into table2 select * from a.dbo.table12. table1和table2表结构不相同use binsert into table2(c1,c2) select c1,c2 from a.dbo.table1coolxiaoyi:c1,c2为需要复制的列。3. 如果还没有创建表table2,可以直接将table1的表结构和记录都复制到数据库b中 阅读全文
posted @ 2012-07-02 10:08 xyzhuzhou 阅读(3116) 评论(0) 推荐(0)
摘要:有时候SQL Server里面有几个没有用的组,这时候我们可以把这些垃圾组删除,今天教大家2个方法来删除这些组。 方法一: HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\SQLEW\Registered Servers X\SQL Server 组 看看注册表里的这个键,删除建立的对应名称就行了。 方法二: 拔网线之后再删除。 阅读全文
posted @ 2012-06-19 17:34 xyzhuzhou 阅读(254) 评论(0) 推荐(0)
摘要:第一步:打开你的"开始菜单",打开“程序”-》SQL server enterprise mananger "企业管理器"在你要导出的SQL数据库上鼠标右键菜单:所有任务-》导出数据第二步:会出现一个导出向导窗口。选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。第三步:进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为“Microsoft Access。点 “文件名(F)” 后面的按钮选择目标.MDB文件。第四步:选择“从数据库复制表和视图”。第五步:我们注意这里选表的时候右边有一个“转换”列。SQL 阅读全文
posted @ 2012-06-12 09:41 xyzhuzhou 阅读(881) 评论(0) 推荐(0)
摘要:sql server的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到: sql server数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误: “无法解决 equal to 操作的排序规则冲突。”一.错误分析: 这个错误是因为排序规则不一致造成的,我们做个测试,比如:create table #t1(name varchar(20) collate albanian_ci_ai_ws, value int)create table #t2(name varchar(20) collate ch... 阅读全文
posted @ 2012-05-31 18:55 xyzhuzhou 阅读(1021) 评论(0) 推荐(0)
摘要:一、sql server日期时间函数Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:174. 阅读全文
posted @ 2012-05-31 14:04 xyzhuzhou 阅读(337) 评论(0) 推荐(0)