I have a stored procedure in MSSQL 2005 Server SQLCLR. Is it possible to define an optional argument to it? If so, how?
                +1 
                A: 
                
                
              The quickest, if not tidiest, solution that comes to mind is to use a 'shim' stored procedure with default values for optional parameters that calls the inner stored procedure with these default values, much as you use method overloading for 'optional' parameters in C# 3 and earlier.
                  ProfK
                   2009-04-05 11:53:15
                
              Yes, that is what I'm doing for now, but I'm trying to avoid having multiple store procedures for the same thing.
                  
                   2009-04-05 12:08:27
                
                
                A: 
                
                
              
            You can pass it as null, and then do something like this:
create proc sp_find_person
 @fname varchar(30)
 @lname varchar(60)
as
begin
 select * from person a
 where (a.fname = @fname or @fname is null) 
   and (a.lname = @lname or @lname is null);
end
go
Passing both parameters as null would return all rows from person.
Passing @fname with a value and @lname null would return all persons with that @fname.
Passing @lname with a value and @fname null would return all persons with that @lname.
Passing both with a non-null value would find all persons with that the specified fname and lname.
                  tpdi
                   2009-04-05 13:54:26