怎样中断一个存储过程? 用vb调用SQL server存储过程时能不能中途停止? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在存储过程中根据错误返回错误号可以进行相应的操作CREATE PROCEDURE cx_hdfp @bh_name char(10),@hd char(6)ASbegin tran declare @dqbh char(12),@zzbh char(12),@sfsy char(1),@a_str char(12),@a char(12),@aa_str char(12) SELECT @dqbh=dqbh,@zzbh=zzbh,@sfsy=sfsy FROM hdfp WHERE bh_name=@bh_name and hd = @hd select @dqbh=substring(@dqbh,4,12) If @sfsy = "0" select '-1' If @dqbh >= @zzbh select '-2' select @a_str = substring(ltrim(str(convert(numeric(18),'1'+@dqbh)+1)), 2,12) select @aa_str='AAA' + @a_str UPDATE hdfp SET dqbh = @aa_str WHERE rtrim(bh_name) = @bh_name and RTRIM(hd) = @hdcommit tran select @aa_str在程序中if ss="-1" then exit subelse end if '*****我写了一个通用的存储过程。只要传一个SQL语句的字符串即可*****'*****字符串大小可以是0到几百k,再大的我没有试过,理论上是无限大的*****'*****字符串中不能有单引号出现,如果要有单引号应在前加上转义符,即'在字符串里应为''CREATE PROCEDURE up_ModifyDB @UpdateSql NTEXT, @Status INTEGER = 1 OUTPUT --返回值 0:成功 1:失败AS--变量定义Declare @Trans nvarchar(25)SET NOCOUNT ON--定义事务名SET @Trans="transModify1"BEGIN TRANSACTION @Trans--运行EXECUTE sp_executesql @UpdateSqlIF @@ERROR = 0BEGIN COMMIT TRANSACTION @Trans; SET @Status = 0 ;-- 成功END ELSEBEGIN ROLLBACK TRANSACTION @Trans; SET @Status = 1; --失败ENDSET NOCOUNT OFFRETURN @StatusGO 如果存储过程执行的时间太长了,就让数据库管理员将它Kill了 toolbar 和imagelist的基本问题 关于 Inet "不能完成请求" 错误 如何用VB控制在ACCESS的同一个数据库中创建一个与A表(原有表)结构完全相同的B表? 求助高手指点2个问题,RecordSet里具体是什么东西,C/S模式具体是什么概念. 将数组中的值赋给TREEVIEW的结点??? 狼终于来了~~~~ 新手勿进 高手进来:mscomm控件的问题 一个很不简单的问题 倒,遇到小问题 求助:请问如何把在一个数据库中建立好的关系图copy到另一台机子上的SQL-server database中?? 新手上路,ADO问题?
可以进行相应的操作CREATE PROCEDURE cx_hdfp @bh_name char(10),@hd char(6)
AS
begin tran
declare @dqbh char(12),@zzbh char(12),@sfsy char(1),@a_str char(12),@a char(12),@aa_str char(12) SELECT @dqbh=dqbh,@zzbh=zzbh,@sfsy=sfsy FROM hdfp
WHERE bh_name=@bh_name and hd = @hd select @dqbh=substring(@dqbh,4,12) If @sfsy = "0"
select '-1'
If @dqbh >= @zzbh
select '-2'
select @a_str = substring(ltrim(str(convert(numeric(18),'1'+@dqbh)+1)), 2,12)
select @aa_str='AAA' + @a_str UPDATE hdfp SET dqbh = @aa_str WHERE rtrim(bh_name) = @bh_name
and RTRIM(hd) = @hd
commit tran
select @aa_str在程序中
if ss="-1" then
exit sub
else
end if
'*****字符串大小可以是0到几百k,再大的我没有试过,理论上是无限大的*****
'*****字符串中不能有单引号出现,如果要有单引号应在前加上转义符,即'在字符串里应为''CREATE PROCEDURE up_ModifyDB
@UpdateSql NTEXT,
@Status INTEGER = 1 OUTPUT --返回值 0:成功 1:失败
AS
--变量定义
Declare @Trans nvarchar(25)
SET NOCOUNT ON--定义事务名
SET @Trans="transModify1"BEGIN TRANSACTION @Trans
--运行
EXECUTE sp_executesql @UpdateSqlIF @@ERROR = 0
BEGIN
COMMIT TRANSACTION @Trans;
SET @Status = 0 ;-- 成功
END ELSE
BEGIN
ROLLBACK TRANSACTION @Trans;
SET @Status = 1; --失败
ENDSET NOCOUNT OFF
RETURN @StatusGO