Sql Server中如何快速修正SQL 语句错误

本文将和大家讨论一些关于找SQL 错误的问题。

现在的系统基本都是需要用到数据库的,既然用到数据库我们就要写SQL 脚本,常用的做法是现在Microsoft Sql Server Management Sudio写好调试好,然后贴到

代码中,但这样就能保证我们的SQL 脚本正常运行吗?那如果带参数的SQL 或存储过程出现问题呢?如果数据出现问题,我们应该怎么找出错误的SQL 呢?

带着这个疑问,开始我们今天的讨论。以前用代码和数据库打交道,出现数据问题,我们会打个断点一步一步的调试,就像这样:

先找出可能出错的SQL ,一步一步调试

,直到找出这个语句,然后贴到 数据库中执行 :

似乎这种方法的确能解决绝大多数情况,但是带参数的存储过程该怎么办呢,估计这也是多数程序员不爱用存储的原因之一吧(调试费劲).

其实微软已经给我我们一个很好用的跟踪调试工具Sql Server Profiler(事件查看器),这个工具可以全程跟踪数据库的变化,当然扣SQL、存储更不是问题了.

继续我们刚才简单的SQL的调试,看看在 Sql Server Profiler 中的状态:

是不是和我们刚才在代码中调试的SQL 结果一致.

调试存储才是我们使用它的最重要的目的之一,下面我们演示带参数存储过程的调试过程:

这样我们是不是很清楚的看到我们的数据库脚本,就连参数写的对不对我们都能一样看出来.

执行结果如下:

如果你想用一个存储达到上图红色圆圈的效果(字母数字组合,并按照数字自增)的效果,请参考

Sql Server 主键由字母数字组成并按照数字自动增长

有了事件查看器,害怕找不出SQL 的错误吗,你是否乐意去写使用它了调试存储呢?

由于很多人不知道有这样一个工具存在,笔者特做了一些简单的介绍,如果帮助到你,别忘了推荐一下.

Sql Server中如何快速修正SQL 语句错误

时间: 2024-10-04 07:14:30

Sql Server中如何快速修正SQL 语句错误的相关文章

把工作这段期间sql server 中需要用的sql语句整理了一下

前些日子sql用到哪里写到哪里,乱七八糟,今天整理了一下,以作备份(虽然开通博客已经八个月了,但是今天还是第一次发表博文,好紧张啊~~) --2014.08.27号整理sql语句 1:进入数据库use [数据库名] eg: use [dev] 2:创建表create table 表名([ID] int identity(1,1) primary key,[列名] 数据类型 约束 ,)eg:create table atblTest1([ID] int identity(1,1) primary

sql server 中的case when then 语句

--select DataName , --case Code -- -- when 'W01'  then '男' -- -- when 'W07'  then '女' -- -- else '其他' -- -- end as Code --from dbo.HistoryData select DataName, ( case when Code='W01'  then '男' when Code='W07'  then '女' else '其他' end ) from HistoryDat

在SQL SERVER中,怎样用T-sql语句拷贝表??

1.说明:复制表(只复制结构,源表名:a 新表名:b) 法一:select * into b from a where 1<>1法二:select top 0 * into b from a2.说明:拷贝表(拷贝数据,源表名:a 目标表名:b)insert into b(a, b, c) select d,e,f from a;

深入浅出SQL Server中的死锁 【转】

简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相关观念有一个理解. 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁.比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示. 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁.由这个简单的例子可以看出,发生死锁需要四个必要条件,如下: 1)互斥

深入浅出SQL Server中的死锁

简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相关观念有一个理解. 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁.比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示. 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁.由这个简单的例子可以看出,发生死锁需要四个必要条件,如下: 1)互斥

SQL SERVER 中的Schema详解

以往 SQL Server 内的对象命名是"服务器.数据库.用户名.对象",但新版的对象命名改为"服务器.数据库.Schema.对象".这让你规划数据库对象命名时更有弹性. 架构是形成单个命名空间的数据库实体的集合.命名空间是一个集合,其中每个元素的名称都是唯一的. 虽然 SQL Server 2000 包含 CREATE SCHEMA 语句,但实际上并不会像上面所定义的那样创建架构.在 SQL Server 2000 中,数据库用户和架构是隐式连接在一起的.每个数

(4.7)怎么捕获和记录SQL Server中发生的死锁?

转自:https://blog.csdn.net/c_enhui/article/details/19498327 怎么捕获和记录SQL Server中发生的死锁? sql server如何让错误日志记录死锁 2014年02月19日 18:25:55 阅读数:1313 我们知道,可以使用SQL Server自带的Profiler工具来跟踪死锁信息.但这种方式有一个很大的敝端,就是消耗很大.据国外某大神测试,profiler甚至可以占到服务器总带宽的35%,所以,在一个繁忙的系统中,使用profi

SQL Server中的SQL语句优化与效率

很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhangsan' and tID > 10000 和执行: select * from table1 where tID > 10000 and name='zhangsan' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那

在SQL Server中快速删除重复记录

在SQL Server中快速删除重复记录 2006-07-17 21:53:15 分类: SQL Server 开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确.解决该问题的办法就是将这些重复的记录删除,只保留其中的一条. 在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录.因为这种方法需要对整个表