deleteWhere method

Future<MssqlWriteOutcome> deleteWhere({
  1. required List<MssqlCondition> where,
  2. required String operation,
  3. bool allRows = false,
  4. List<MssqlCondition> scopes = const <MssqlCondition>[],
  5. bool readRows = false,
})

Removes every row matching where.

Implementation

Future<MssqlWriteOutcome> deleteWhere({
  required List<MssqlCondition> where,
  required String operation,
  bool allRows = false,
  List<MssqlCondition> scopes = const <MssqlCondition>[],
  bool readRows = false,
}) {
  _requirePredicate(where, allRows, operation);
  var delete = MssqlDelete.fromParts(binding.nameParts);
  for (final condition in <MssqlCondition>[...where, ...scopes]) {
    delete = delete.where(condition);
  }
  if (where.isEmpty && scopes.isEmpty) delete = delete.allRows();
  return _runTargeted(
    operation: operation,
    readRows: readRows,
    source: MssqlOutputSource.deleted,
    compile: (clause) => (clause == null ? delete : delete.returning(clause))
        .compile(dialect: dialect),
  );
}