sql server-求指点写的存储过程哪里有问题?

问题描述

求指点写的存储过程哪里有问题?

/*1、执行存储过程未更新任何数据:
execute dbo.pro_alarm_update_qr @s_zyh ='00024893' , @dt_jyrq ='2016-1-9 22:52:8.653' , @s_yq ='血球仪BF6800' , @s_ybh ='2601094769' , @s_xmbh ='13' , @dt_sendtime ='2016-1-9 22:52:8.653' , @s_czybh ='9999 管理员' , @dt_qrsj ='2016-1-10 10:29:8.616' */

--过程内容:
alter   PROCEDURE [dbo].[pro_alarm_update_qr]
 @s_zyh     varChar(20),
 @dt_jyrq    DateTime,
 @s_yq      varchar(10),
 @s_ybh     varchar(20),
 @s_xmbh    varchar(20),
 @dt_sendtime datetime,
 @s_czybh   varchar(20),
 @dt_qrsj   datetime
AS
     update interface_lis_pacs..inter_lab_resultalert set hischeckman=@s_czybh,hischeckdt=@dt_qrsj
     where alertdt = @dt_jyrq and rptunitname=@s_yq and barcode=@s_ybh and rpt_itemid=@s_xmbh and alertdt = @dt_sendtime
go
-------------------------------------------------------------------------------
--2、把参数传进去,单独执行查询有数据,而且update也能够成功更新数据
     select * --  update a  set hischeckman=@s_czybh,hischeckdt=@dt_qrsj
     from interface_lis_pacs..inter_lab_resultalert a
     where alertdt = '2016-1-9 22:52:8.653' and rptunitname='血球仪BF6800' and barcode='2601094769' and rpt_itemid='13' and alertdt = '2016-1-9 22:52:8.653'

解决方案

楼主 你测试一下
--2、把参数传进去,单独执行查询有数据,而且update也能够成功更新数据
select * -- update a set hischeckman=@s_czybh,hischeckdt=@dt_qrsj
from interface_lis_pacs..inter_lab_resultalert a
where alertdt = '2016-1-9 22:52:8.653' and rptunitname='血球仪BF6800' and barcode='2601094769' and rpt_itemid='13' and alertdt = '2016-1-9 22:52:8.653'

    把这段后面的where条件删除,看看能不能查询出数据
    然后再把条件一个一个带入

解决方案二:

找到解决方法了:where alertdt = @dt_jyrq and rptunitname=@s_yq and barcode=@s_ybh and rpt_itemid=@s_xmbh and alertdt = @dt_sendtime
改成
where barcode=@s_ybh
就可以了
但是不知道原理,求高手告知原理……

解决方案三:

@s_yq varchar(10),
长度不够

时间: 2025-01-26 09:05:42

sql server-求指点写的存储过程哪里有问题?的相关文章

求SQL高手帮我写一个存储过程,万分感谢!

问题描述 求SQL高手帮我写一个存储过程,万分感谢! 求高手帮帮我..是一个保险类的表.要展示出目标值 实际值 达成率 上年同期 同比增长 指标代码都在图里 解决方案 拍照技术太差了,都不好看 解决方案二: 再记一个SQL分页存储过程 解决方案三: 会是会,但是不太想写, 一.题目要求资料看不清 二.50C吸引力不大 三.如果是你的作业,那你还是自己动手练习:如果是你的工作,那这价值可不止50C

浅析SQL SERVER一个没有公开的存储过程

server|存储过程 浅析SQL SERVER一个没有公开的存储过程    从SQLSERVER6.5开始,MS提供了一个非常有用的系统存储过程sp_MSforeachtable和sp_MSforeachDB;作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须这样写游标:DECLARE @TableN

在SQL Server启动时自动执行存储过程。第1/2页_MsSql

sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行.这是一个很不错的选择,它可以用于多种多样的用途.比如,你可能在你的数据库中有开销很大的查询,这个查询在首次执行时会花费一些时间.通过使用sp_procoption,你可以在服务器启动时运行这个查询以此来预先编译执行计划,由此,你的某个用户就不会成为第一个运行这个特殊查询的不幸的人.我曾经用这个功能建立了一个我自己写的概要分析器服务器端跟踪的自动执

在SQL Server启动时自动执行存储过程。第1/2页

sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行.这是一个很不错的选择,它可以用于多种多样的用途.比如,你可能在你的数据库中有开销很大的查询,这个查询在首次执行时会花费一些时间.通过使用sp_procoption,你可以在服务器启动时运行这个查询以此来预先编译执行计划,由此,你的某个用户就不会成为第一个运行这个特殊查询的不幸的人.我曾经用这个功能建立了一个我自己写的概要分析器服务器端跟踪的自动执

MS SQL Server 2000 中文模糊搜寻存储过程及函数

server|存储过程|函数|中文 这些存储过程/函数可以在 MS SQL Server 2000 里使用,包含两组存储过程, 这两组函数的功能相同, 只是适用的汉字内码范围不同.这些存储过程及函数支持 GBK (大陆简体中文及繁体中文) 和 BIG5 内码 (台湾及香港等的繁体中文)这些函数将直接用在 SQL 语句里, 使用非常方便.可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用.这些存储过程全部用 C++ Builder 编

动态创建SQL Server数据库、表、存储过程

server|创建|存储过程|动态|数据|数据库 下面是利用SQL语句创建数据库.表.存储过程.视图.索引.规则.修改表.查看数据等的方法.所要增加的控件如下: Imports System.DataImports System.Data.SqlClient Public Class Form1  Inherits System.Windows.Forms.Form  Private ConnectionString As String = "Data Source=.;Initial Cata

SQL Server 大量数据的分页存储过程代码

  OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable create database data_Test --创建数据库data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userName nvarchar(20) not null, userPWD nvarchar(20) not null, userE

在SQL Server 2005中创建CLR存储过程的详细介绍

在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了. 假设服务器里面有个test数据库,数据库有个架构user,还有一个表test1,然后有个sql登陆用户叫test_user,将这个用户设置成VS2005里面数据库连接的登陆用户. 在VS2005中创建一个项目,类别是SQL Server数据库项目,然后往项目里面添加

SQL Server 2005 创建简单的存储过程--总结分析

最近由于工作需要,简单了解了下SQL Server 2005 数据库创建简单的在存储过程.一.首先说明如何创建存储过程: CREATE PROCEDUER my_pro @inputDate varchar ,//声明输入变量 @Result varchar(255) output //声明输出变量 AS declare @variable1 varchar(255)//声明varchar变量 declare @variable2 int //声明整形变量 BEGIN IF ...(条件) BE