# File lib/active_record/connection_adapters/sqlserver_adapter.rb, line 300
      def add_limit_offset!(sql, options)
        if options.has_key?(:limit) and options.has_key?(:offset) and !options[:limit].nil? and !options[:offset].nil?
          options[:order] ||= "id ASC"
          total_rows = @connection.select_all("SELECT count(*) as TotalRows from #{get_table_name(sql)}")[0][:TotalRows].to_i
          if (options[:limit] + options[:offset]) > total_rows
            options[:limit] = (total_rows - options[:offset] > 0) ? (total_rows - options[:offset]) : 1
          end
          sql.gsub!(/SELECT/i, "SELECT * FROM ( SELECT TOP #{options[:limit]} * FROM ( SELECT TOP #{options[:limit] + options[:offset]}")<<" ) AS tmp1 ORDER BY #{change_order_direction(options[:order])} ) AS tmp2 ORDER BY #{options[:order]}"
        else
          sql.gsub!(/SELECT/i, "SELECT TOP #{options[:limit]}") unless options[:limit].nil?
        end
      end