sql >> Databasteknik >  >> RDS >> Sqlserver

returnera endast de senaste valda resultaten från den lagrade proceduren

Använd en tabellvariabel:

create procedure xxxSearch @a nvarchar(80), @b nvarchar(80)...
as 
begin
  DECLARE @res TABLE(...)
  INSERT INTO @res(...)
  select whatever 
    from MyTable t
    where ((@a is null and t.a is null) or (@a = t.a)) and
          ((@b is null and t.b is null) or (@b = t.b))...

    if @@ROWCOUNT = 0
    begin
        INSERT INTO @res(...)
        select whatever 
          from MyTable t
          where ((@a is null) or (@a = t.a)) and
                ((@b is null) or (@b = t.b))...
          if @@ROWCOUNT = 0
          begin
             ...
          end
    end
    SELECT ... FROM @res
end


  1. Blockering av lediga anslutningar på ClientRead för parametriserade frågor (bindningar) under hög trafik

  2. Anropar PL/SQL-procedur med användardefinierad post som IN-parameter med JDBC

  3. SQL-datatyp att använda vid insättning av pengar

  4. APEX:Omdirigera efter inloggning till en sida med argument