0
set @SQLQuery = 'update top (200) ' +@tablename+ 
  ' set Flag1 = ''new'' where [Flag1] = '+@flag1+'';
Gordon Linoff
  • 1,242,037
  • 58
  • 646
  • 786
Jay
  • 1
  • Got solution: exec('update top(200)'+@tablename+' set Flag1 = '''+@flag1+''' where Flag1 = ''new'''); – Jay Apr 09 '16 at 22:33
  • As a good practice do not construct your query from parameters, since it will induce [SQL Injection](https://en.wikipedia.org/wiki/SQL_injection) –  Apr 10 '16 at 09:41
  • Thanks for your advice, @yildizm85. I'll keep in mind for my future implementations as well. – Jay Apr 10 '16 at 19:23

1 Answers1

0

You can try something like this.

set @SQLQuery = 'update ' +@tablename+ ' set Flag1 = ''new'' where [Flag1] = '+@flag1+' AND Flag1 IN (SELET TOP 200 Flag1 FROM ' +@tablename+ 'WHERE [Flag1] = '+@flag1+')';

slnit
  • 35
  • 6
  • Thanks a lot for your suggestions, here is my solution. exec('update top(200)'+@tablename+' set Flag1 = '''+@flag1+''' where Flag1 = ''new'''); – Jay Apr 09 '16 at 22:30