CREATE PROCEDURE dbo.SelectByGUID
@GUID char(36),
@dd decimal(18,2),
@rtn decimal(18,2) Output
as
select @rtn=aa-@dd from test where GUID=@GUID

解决方案 »

  1.   

    给你一个例题create table ai ( i varchar(100))
    insert into ai select 'a'
    insert into ai select 'b'
    godeclare @sql nvarchar(4000),@nn varchar(100)
    select @sql='select @n=i from ai where i=@a'
    exec sp_executesql @sql,N'@n varchar(100) output,@a varchar(100)',@nn output,@a='a'
    select @nn
      

  2.   

    CREATE PROCEDURE SelectByGUID
    @GUID char(36),
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
      Select @rtn=aa-@dd from test where GUID=@GUID
    GO
      

  3.   

    CREATE PROCEDURE dbo.SelectByGUID
    @GUID char(36),
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
      select @rtn=aa-@dd from test where GUID=@GUID
      

  4.   

    我的GUID是nchar(36)类型根据 where GUID=@GUID
    这个条件根本就找不到记录,老是同一条中
      

  5.   

    CREATE PROCEDURE dbo.SelectByGUID
    @GUID char(36),
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
      select @rtn=aa-@dd from test where GUID=@GUID
    go
    楼主的意思是什么?我的GUID是nchar(36)类型根据 where GUID=@GUID
    这个条件根本就找不到记录,老是同一条中
      

  6.   

    CREATE PROCEDURE dbo.SelectByGUID
    @GUID char(36),
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
      select @rtn=aa-@dd from test where GUID=@GUID
    go
    楼主的意思是什么?我的GUID是nchar(36)类型根据 where GUID=@GUID
    这个条件根本就找不到记录,老是同一条中
      

  7.   

    CREATE PROCEDURE dbo.SelectByGUID
    @GUID varchar(36), --这里用var类型
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
    declare @strSQL nvarchar(1000)select @strSQL = N'Select @rtn=aa-@dd from test where GUID=''' + @GUID + ''''exec (@strSQL)
    GO
      

  8.   

    CREATE PROCEDURE dbo.SelectByGUID
    @GUID varchar(36), --这里用var类型
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
    declare @strSQL nvarchar(1000)Select @rtn=aa-@dd from test where GUID=@GUIDGO
      

  9.   

    --如果你必须要用动态sql:CREATE PROCEDURE dbo.SelectByGUID
    @GUID varchar(36),
    @dd decimal(18,2),
    @rtn decimal(18,2) Output
    as
    declare @strSQL nvarchar(1000)set @strsql=N'Select @rtn=aa-'+cast(@dd as nvarchar(10))+' from test where GUID='''+@GUID+''''exec sp_executesql @sql,N'@rtn int output',@rtn outputGO