create proc au_info @lastname varchar(40),@firstname varchar(20),@au_name varchar(100)  OUTPUT
asselect @au_name=au_lname+au_fname
from authors inner join titleauthor on authors.au_id=titleauthor.au_id
         join titles on titleauthor.title_id=titles.title_id
         join publishers on titles.pub_id=publishers.pub_id
where au_fname=@firstname
and au_lname=@lastname
go

解决方案 »

  1.   

    DECLARE @lastname varchar(40)
    DECLARE @firstname varchar(20)
    DECLARE @au_name varchar(100)
    SELECT @lastname = ''
    SELECT @firstname = ''
    SELECT @au_name = ''
    EXEC  [pubs].[dbo].[au_info] @lastname, @firstname, @au_name OUTPUT 
      

  2.   

    DECLARE @lastname varchar(40)
    DECLARE @firstname varchar(20)
    DECLARE @au_name varchar(100)
    SELECT @lastname = 'Green'
    SELECT @firstname = 'Marjorie'
    SELECT @au_name = ''
    EXEC  [pubs].[dbo].[au_info] @lastname, @firstname, @au_name OUTPUT print @au_name 
    --GreenMarjorie
      

  3.   

    DECLARE @lastname varchar(40)
    DECLARE @firstname varchar(20)
    DECLARE @au_name varchar(100)
    SELECT @lastname = ''
    SELECT @firstname = ''
    SELECT @au_name = ''
    EXEC  [pubs].[dbo].[au_info] @lastname, @firstname, @au_name OUTPUT 
    print @au_name用参数名称显示是空的
      

  4.   

    上面得值肯定是空的,你要给参数赋值。DECLARE @au_name varchar(100)
    SELECT @au_name = ''
    EXEC  [pubs].[dbo].[au_info] 'Green','Marjorie', @au_name OUTPUT 
    SELECT @au_name 这样执行得到的值是空得吗,如果是那就是没有符合条件的记录,否则肯定有值