摘要: 有时候,一个简单的字符比较,你可能也会被弄得晕头转向。为什么这样说呢?请看下面这个例子(代码就不贴了,因为后来发现页面不支持这两个字符的显示)。猜测一下,会是什么结果?是1还是0? 回答这个问题之前,请再继续向下看。先创建几个不同排序规则的数据库(见数据库名可知)。 Figure-1: 在SQL_L 阅读全文
posted @ 2016-03-16 13:56 FishParadise 阅读(1220) 评论(0) 推荐(1) 编辑
摘要: 1. 问题 今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_sql_modules这个系统视图的。直接查询这个视图的definition字段,发现跟sp_helptext是一样的。难道是系统视图也存在缓 阅读全文
posted @ 2016-02-01 22:07 FishParadise 阅读(672) 评论(1) 推荐(1) 编辑
摘要: 看到网上有人使用“计算列”(computed coulumn)来强制开发人员禁止SELECT * FROM XXX这种语句的使用。以下是一个简单的例子:--建表IF OBJECT_ID(N'T35') IS NOT NULLBEGIN DROP TABLE T35;END;GOCREATE T... 阅读全文
posted @ 2016-01-18 18:50 FishParadise 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 假如有这张一张表,当时创建时没有用来存放递增的数值的int型字段。在使用的过程中,有这样的需求。 USE AdventureWorks2008R2; GO IF OBJECT_ID(N'T33','U') IS NOT NULL BEGIN DROP TABLE T33; END; GO CREAT 阅读全文
posted @ 2016-01-08 17:00 FishParadise 阅读(979) 评论(5) 推荐(2) 编辑
摘要: 还记得多年前,有个客户要求把本来默认属于dbo架构的数据库表全部修改为其他自定义的架构。那时,对数据库不熟,为了那100多张表还折腾了很久才弄好。其实是一个很简单的问题,现在就当作笔记记录一下吧。修改下面相应对象的类型,可以批量修改表、视图、函数、存储过程等对象的架构。 --批量修改表架构名 DEC 阅读全文
posted @ 2016-01-06 19:40 FishParadise 阅读(653) 评论(0) 推荐(0) 编辑
摘要: SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel、数据库与文本文件、数据库与数据库之间的导出导入)。 (一)数据库与Excel 方法1: 使用数据库客户端(SSMS)的界面工具。右键选择要导出数据的数据库,选择“任务”——“导出数据”,下图1,按 阅读全文
posted @ 2016-01-03 23:31 FishParadise 阅读(100904) 评论(3) 推荐(3) 编辑
摘要: 最近家里的电脑从WIN7升级到WIN10。安装完常用软件和SQL SERVER之后,附加一些测试数据库,发现报以下错误:figure-1:使用SSMS附加数据库文件报错尝试用脚本,同时报错:figure-2:使用SQL脚本附加数据库文件报错从错误提示来看,估计是所操作的用户对文件访问的权限不足。但是... 阅读全文
posted @ 2016-01-03 19:13 FishParadise 阅读(2235) 评论(0) 推荐(0) 编辑
摘要: 前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文件。各有优缺点,以适用不同的需求。下面介绍大容量数据导出导入的利器——BCP实用工具。同时在后面也介绍BULK INSERT导入大容量数据,以及 阅读全文
posted @ 2015-09-15 01:11 FishParadise 阅读(12639) 评论(8) 推荐(5) 编辑
摘要: 在SQL中,使用动态SQL是很常见的。有些复杂的计算,或是存储过程,代码很长,中间可能有多次执行SQL语句。而调试拼串的SQL语句却是件痛苦的事,很难看出来运行的语句是什么。所以我会经常使用print这个命令把运行前的语句打印到屏幕上,然后复制出来到另一个窗口进行调试、修改,这样就比较方便了。但是这... 阅读全文
posted @ 2015-09-14 01:08 FishParadise 阅读(905) 评论(1) 推荐(1) 编辑
摘要: 有时要构造一些数据来做测试数据,像下面这样:IF OBJECT_ID(N'T14') IS NOT NULLBEGIN DROP TABLE T14ENDGOCREATE TABLE T14 (t14_id INT)GODECLARE @i INT = 1WHILE @i <= 1000BEG... 阅读全文
posted @ 2015-09-04 00:12 FishParadise 阅读(1694) 评论(0) 推荐(0) 编辑