你是把 exec proc_TongJi 这句放到存储过程体里了吧这样就是存储过程嵌套了。
比如create proc p_test
as
   exec p_test死循环CREATE PROC proc_TongJi
AS
BEGIN
 DECLARE @avgMen money
 DECLARE @avgWomen money
 DECLARE @numMen int
 DECLARE @numWomen int
 SELECT @avgMen = AVG(wage) FROM wage WHERE employeeid in (select employeeid from employees where sex ='男')
  print '男员工平均工资:'+ Convert(varchar(10),@avgMen)
 SELECT @avgWomen = AVG(wage) FROM wage WHERE employeeid in (select employeeid from employees where sex ='女')
  print '女员工平均工资:'+ Convert(varchar(10),@avgWomen)
 SELECT @numMen = COUNT(*) FROM employees WHERE sex = '男'
  print '男员工人数:'+Convert(varchar(10),@numMen)
 SELECT @numWomen = COUNT(*) FROM employees WHERE sex = '女'
  print '女员工人数:'+Convert(varchar(10),@numWomen)
END
GO
EXEC proc_TongJi 
GO
DROP PROC proc_TongJI
GO

解决方案 »

  1.   

    CREATE PROC proc_TongJi
    AS
     DECLARE @avgMen money
     DECLARE @avgWomen money
     DECLARE @numMen int
     DECLARE @numWomen int
     SELECT @avgMen = AVG(wage) FROM wage WHERE employeeid in (select employeeid from employees where sex ='男')
      print '男员工平均工资:'+ Convert(varchar(10),@avgMen)
     SELECT @avgWomen = AVG(wage) FROM wage WHERE employeeid in (select employeeid from employees where sex ='女')
      print '女员工平均工资:'+ Convert(varchar(10),@avgWomen)
     SELECT @numMen = COUNT(*) FROM employees WHERE sex = '男'
      print '男员工人数:'+Convert(varchar(10),@numMen)
     SELECT @numWomen = COUNT(*) FROM employees WHERE sex = '女'
      print '女员工人数:'+Convert(varchar(10),@numWomen)
    GOEXEC proc_TongJi