我用的是SQL SERIER2000+D6  Str1:= ' CREATE PROCEDURE   CheckIsExists1         '+
          '     @Check_falg  Char(1)  output ,        '+
          '     @TableName1  Char(40)  ,                '+
          '     @NowFieldName1   char(60),          '+
          '     @FieldName1 char(60)                   '+
          '     AS                                     '+
          '   BEGIN                                    '+' 
         '   if  Exists(Select * from @TableName1 Where @FieldName1= @NowFieldName1)                                          '+          
          '         Set     @Check_falg=''Y''           '+
          '      Else  Set   @Check_falg=''N''          '+
          '    END       ' ;希望在某个表中找到相同的记录返回Y

解决方案 »

  1.   

    把里面的语句换成:DECLARE @SQL varchar(2000)  
    SET @SQL='if  Exists(Select * from ' + @TableName1 + 
                        'Where '+@FieldName1 +'='+@NowFieldName1) +           
              '         Set     @Check_falg=''Y''           '+
              '      Else  Set   @Check_falg=''N''          '+
              '    END       ' 
    EXEC @SQL
      

  2.   

    CREATE PROCEDURE   CheckIsExists1
                   @Check_falg  Char(1)  output ,
                   @TableName1  Char(40)  ,
                   @NowFieldName1   char(60),
                   @FieldName1 char(60)
                   AS             
    BEGIN
    DECLARE @sqlstr NVarChar(200);
       
       @sqlstr = 'if  Exists(Select * from @Table1
                      Where @Field1= @NowField1) 
                    Set     @Checkfalg=''Y''
                  Else  
                    Set   @Checkfalg=''N'''
      execute sp_executesql @sqlstr,N'@Table1 char(40),@Field1 char(60),@NowField1 char(60),@Checkflag char(1) output',@TableName1,@FieldName1,@NowFieldName1,@Check_flag output 
    END
      

  3.   

    我自己试着做了一个
    ta,tb是两个表没一个表都有两个字段a int,b varchar
    我在sql server中写了一个这样的存储过程:CREATE PROCEDURE test_a_b 
    @abc varchar(50) 
    AS
    begin
    select ta.a,ta.b,tb.a,tb.b from ta right join tb on tb.b = @abc
    end
    GO然后我在查询分析器中写这样的信息
    exec test_a_b
    @abc = 'apollo'运行就返回结果。
    这个过程可以用adopro..那个控件实现这个过程
      

  4.   

    我做的一个模块,全部是动态sql,几个月没碰也忘完了