帮忙看下此存储过程
时间:2011-11-12
来源:互联网
create Proc P_Check1
@DelTable varchar(50)
as
declare @count int,
@count1 int,
@DelID varchar(50),
@DelIDValue varchar(50),
@CheckTable varchar(50),
@CheckField varchar(50),
@Mess varchar(50),
@sql nvarchar(4000),
@sql1 varchar(4000) output
begin --判断表是否存在
select @count=COUNT(1) from MasterCheck where DelTable=@DelTable
if @count>0
begin --检测
select @DelID=DelID,@DelIDValue=DelIDValue,@CheckTable=CheckTable,@CheckField=CheckField,@Mess=Mess
from RecordCheck where DelTable = @DelTable
print(@CheckField)
set @sql='select @count1=COUNT(1) from '+@CheckTable+' where '+@CheckField+'='''+@DelIDValue+''''
print(@sql)
exec sp_executesql @sql,N'@count1 int',@count1
print(@count1)
if @count1>0
print('有内容')
else
print('直接删除')
end
else
print('此表不存在')
end
go
print(@sql)和print(@count1)都没法输出,我也不知道count1是否得到了正确结果,但是最终输输出的是'直接删除',这个结果是不对的,应该输出'有内容',请帮我看一下错误出在哪里!谢谢!
@DelTable varchar(50)
as
declare @count int,
@count1 int,
@DelID varchar(50),
@DelIDValue varchar(50),
@CheckTable varchar(50),
@CheckField varchar(50),
@Mess varchar(50),
@sql nvarchar(4000),
@sql1 varchar(4000) output
begin --判断表是否存在
select @count=COUNT(1) from MasterCheck where DelTable=@DelTable
if @count>0
begin --检测
select @DelID=DelID,@DelIDValue=DelIDValue,@CheckTable=CheckTable,@CheckField=CheckField,@Mess=Mess
from RecordCheck where DelTable = @DelTable
print(@CheckField)
set @sql='select @count1=COUNT(1) from '+@CheckTable+' where '+@CheckField+'='''+@DelIDValue+''''
print(@sql)
exec sp_executesql @sql,N'@count1 int',@count1
print(@count1)
if @count1>0
print('有内容')
else
print('直接删除')
end
else
print('此表不存在')
end
go
print(@sql)和print(@count1)都没法输出,我也不知道count1是否得到了正确结果,但是最终输输出的是'直接删除',这个结果是不对的,应该输出'有内容',请帮我看一下错误出在哪里!谢谢!
作者: xingxiaobai 发布时间: 2011-11-12
这里直接是不能print的,要做一个输出的参数来看这个存储过程是否删除或未删除。
create proc get_c
@in int,
@out varchar(100) output
as
begin
set @out = '删除错误'
end
go
declare @ret varchar(100)
exec get_c null,@ret output
select @ret
create proc get_c
@in int,
@out varchar(100) output
as
begin
set @out = '删除错误'
end
go
declare @ret varchar(100)
exec get_c null,@ret output
select @ret
作者: AcHerat 发布时间: 2011-11-12
SQL code
create Proc P_Check1 @DelTable varchar(50) as declare @count int, @count1 int, @DelID varchar(50), @DelIDValue varchar(50), @CheckTable varchar(50), @CheckField varchar(50), @Mess varchar(50), @sql nvarchar(4000), @sql1 varchar(4000) output begin --判断表是否存在 select @count=COUNT(1) from MasterCheck where DelTable=@DelTable if @count>0 begin --检测 select @DelID=DelID,@DelIDValue=DelIDValue,@CheckTable=CheckTable,@CheckField=CheckField,@Mess=Mess from RecordCheck where DelTable = @DelTable print(@CheckField) set @sql='select @count1=COUNT(1) from '+@CheckTable+' where '+@CheckField+'='''+@DelIDValue+'''' print(@sql) exec sp_executesql @sql,N'@count1 int output',@count1 output print(@count1) if @count1>0 print('有内容') else print('直接删除') end else print('此表不存在') end go
作者: roy_88 发布时间: 2011-11-12
你在过程传参数时,恐怕还得传递许多其他参数,而不是只传来一个表名.
作者: qianjin036a 发布时间: 2011-11-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28