随笔分类 -  SQL Server

摘要:该存储过程用来遍历数据库中的每个表,常见用法如下: 1. 统计数据库中每个表的空间使用情况,返回各表的行数,数据大小,索引大小,未使用空间等。 exec sp_MSforeachtable @command1="sp_spaceused '?'"2.-查询数据库所有表的记录总数CREATETABLE#temp(TableNameVARCHAR(255),RowCntINT)EXECsp_MSfor... 阅读全文
posted @ 2010-09-13 23:33 John Liu 阅读(557) 评论(0) 推荐(0)
摘要:我们在进行项目开发中,经常会遇到多条件模糊查询的需求。对此,我们常见的解决方案有两种:一是在程序端拼接SQL字符串,根据是否选择了某个条件,构造相应的SQL字符串;二是在数据库的存储过程中使用动态的SQL语句。其本质也是拼接SQL字符串,不过是从程序端转移到数据库端而已。 这两种方式的缺点是显而易见的:一是当多个条件每个都可为空时,要使用多个if语句进行判断;二是拼接的SQL语句容易产生SQL注入... 阅读全文
posted @ 2010-08-26 23:23 John Liu 阅读(13805) 评论(7) 推荐(0)
摘要:客户的数据库数据被篡改,利用Log Explorer工具根据日志生成的回滚脚本有200多M,不可能一下子扔到查询分析器里去执行,于是想是否SQL Server是否可以像Oracle那样直接执行.sql文件。讲过查资料,测试,发现可以在cmd窗口中执行如下命令执行Sql文件: osql -S 127.0.0.1 -U sa -P sa -i d:\test.sql 简单说明:osql为SQL Ser... 阅读全文
posted @ 2010-05-15 09:29 John Liu 阅读(19431) 评论(2) 推荐(0)
摘要:最近越来越专注数据库了。今天做项目的时候想在自定义函数中使用动态Sql,结果创建的时候报错。上网查了一下,才发现在自定义函数中不可以使用动态Sql。自己还不知道,真是孤陋寡闻啊。既然不能使用自定义函数,只能使用存储过程了,现在的问题变成了怎么在一个存储过程中查询另一个存储过程返回的结果集。我想到的一个解决办法就是用临时表,把存储过程返回的结果集放到一个临时表中,然后就可以像操作普通表中的数据一样操... 阅读全文
posted @ 2009-04-22 23:41 John Liu 阅读(495) 评论(0) 推荐(0)
摘要:今天工作中需要用到一个中国的省市地区表,正好家里的机器中的sql server中有一个地区表。开始想直接用数据导入导出的方式把数据倒到单位的工作机器上。试了好几次都失败,没找到原因。于是想到把家里的地区表中的数据生成对应insert into 语句形式,再在单位的机器上执行,把数据插入到单位的数据库中。放狗搜了一下,找到一个好用的存储过程。来自叶全府的百度空间,原文地址是:http://hi.ba... 阅读全文
posted @ 2009-04-16 22:39 John Liu 阅读(1275) 评论(1) 推荐(2)
摘要:建立链接服务器: exec sp_addlinkedserver 'test ', ' ','SQLOLEDB','192.18.1.3' 说明:上述语句中test为创建的链接服务器的名称,为了在本地服务器的数据库中使用,192.163.1.3为远程数据库服务器的ip地址。 建立链接服务器登录: exec sp_addlinkedsrvlogin 'test','false',null,'sa',... 阅读全文
posted @ 2009-03-15 22:37 John Liu 阅读(5695) 评论(2) 推荐(0)
摘要:这两天的项目中写了一个存储过程,用表名做变量的,涉及到动态Sql的一些东西,把自己走过的弯路记录一下,希望和我有同样经历的朋友少走些弯路。 首先如果用表名做变量,则必须使用动态sql,否则存储过程会报错。 如果要执行完动态Sql后得到返回值,则存放动态Sql的变量必须定义为nvarchar或ntext类型。我开始就是定义的varchar类型,结果连续报错。 要想从动态Sql中得到返回值,直接用下面... 阅读全文
posted @ 2009-03-10 01:17 John Liu 阅读(658) 评论(1) 推荐(0)
摘要:这几天用SQL2008的时候,想要修改表结构时,报错,提示:"阻止保存要求重新创建表的更改"。以前在SQL2000和SQL2005时代没遇到这个问题,看来是SQL2008新增的功能。经过试验,找到了解决办法,如下: 点击"工具"菜单中的"选项",在弹出的对话框中展开"designer"项,去掉"阻止保存要求重新创建表的更改"前面的勾即可。截图如下: 阅读全文
posted @ 2009-01-15 11:03 John Liu 阅读(5283) 评论(2) 推荐(0)