汗,
按照你这个思路可以考虑这么写
CREATE PROCEDURE 删除学生信息
@学生ID int
AS
begin
DECLARE @sumCount int,
DECLARE @jlCount int,
DECLARE @jtCount int
set @jtcount=(select count(*) from 家庭信息 where 学生ID=@学生ID)set @jlCount=(select count(*) from 学生简历 where 学生ID=@学生ID)
set @sumCount=@jlCount+@jtCountif @sumCount=0
begin
delete dbo.学生信息 where 学生ID=@学生ID
end
按照你这个思路可以考虑这么写
CREATE PROCEDURE 删除学生信息
@学生ID int
AS
begin
DECLARE @sumCount int,
DECLARE @jlCount int,
DECLARE @jtCount int
set @jtcount=(select count(*) from 家庭信息 where 学生ID=@学生ID)set @jlCount=(select count(*) from 学生简历 where 学生ID=@学生ID)
set @sumCount=@jlCount+@jtCountif @sumCount=0
begin
delete dbo.学生信息 where 学生ID=@学生ID
end
解决方案 »
- 急求SQL server数据库问题
- 怎么估算数据库的容量?前辈来看
- 为什么sqlcmd不显示某些执行结果?
- 创建主键自定义名称的用处是什么?
- 鲨鱼请教在SQL显示语句中判断某个字段的内容长度,如果不足8位后面补零
- 在存储过程中参数里包含语句的错误,请教各位大侠。
- 如何用Delphi连接SQL Server 2000数据库?
- 急问:在SQL中“1月5日到2月4日每天早上8点到下午4点”的WHERE 语句怎么写???
- 大力, txlicenhe, zjcxc来拿分
- 怎么把oracle8.06导出的dmp文件导入到8i数据库中???
- 各位大哥帮帮忙啊,关于Sqlserver2000的连接问题
- 求一条简单SQL语句,解决马上结贴
语法
EXISTS subquery
subquery 是一个受限的 SELECT 语句---以上是它的语法,以下两种格式语法都正确
create PROCEDURE 删除学生信息 @学生ID int AS
begin
set nocount on
if(select 家庭信息ID from dbo.家庭信息 where 学生ID=@学生ID) is null and
((select 家庭信息ID from dbo.家庭信息 where 学生ID=@学生ID ) is null )delete dbo.学生信息 where 学生ID=@学生ID
endCREATE PROCEDURE 删除学生信息2
@学生ID int
AS
begin
set nocount on
if not exists (select 家庭信息ID from dbo.家庭信息 where 学生ID=@学生ID) or not exists
(select 家庭信息ID from dbo.家庭信息 where 学生ID=@学生ID )
delete dbo.学生信息 where 学生ID=@学生ID
end
你的方法的确是一个好的解决办法,但不知道用EXIST 在这里效率和COUNT 哪个更好?
希望能找到一个更优的方法!
to:wgzaaa()
感觉你的方法也应该是对的,我测试了,但不知道为什么,两个写法都提示同样的错误:
服务器: 消息 170,级别 15,状态 1,过程 删除学生信息,行 18
第 18 行: '@学生ID' 附近有语法错误。谢谢两位!