In dynamic SQL method 4 in queries(select ) there are variable number of column and bind variable . Other word we can say that until run time we don't how many bind varible there.
Exemple :-
select :select_list Column from tablename where :wherecluase
Dynamic SQL are SQL statements that are mainly used to bind variables to column names. If we want to fetch say 2 columns fron N number of tables, then instead of writing that many Stored procedures, we can write a single stored procedure to get the desired result. For eg Create proc test (colname_comma_separated varchar(max), tablename varchar(100)) as
declare @sql varchar(max)
set @sql = 'SELECT ' + colname_comma_separated + ' from ' + tablename