una - Cómo eliminar múltiples filas en SQL donde id=(x a y)
eliminar varios registros sql server (5)
Por favor intente esto:
DELETE FROM `table` WHERE id >=163 and id<= 265
Estoy tratando de ejecutar una consulta SQL para eliminar filas con identificadores de 163 a 265 en una tabla
Intenté esto para eliminar menos filas
DELETE FROM `table` WHERE id IN (264, 265)
Pero cuando se trata de eliminar cientos de filas a la vez, ¿hay alguna consulta similar al método anterior? También estoy tratando de usar este tipo de consulta pero no lo pude ejecutar
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Por favor, dime la consulta para hacer la acción anterior ...
Puedes usar BETWEEN
:
DELETE FROM table
where id between 163 and 265
Si necesita eliminar en base a una lista, puede usar IN
:
delete from your_table
where id in (value1, value2, ...);
Si necesita eliminar en función del resultado de una consulta, también puede usar IN
:
delete from your_table
where id in (select aColumn from ...);
(Tenga en cuenta que la subconsulta debe devolver solo una columna)
Si necesita eliminar en función de un rango de valores, ya sea que use BETWEEN
o utilice desigualdades:
delete from your_table
where id between bottom_value and top_value;
o
delete from your_table
where id >= a_value and id <= another_value;
CREATE PROC [dbo].[sp_DELETE_MULTI_ROW]
@CODE XML
,@ERRFLAG CHAR(1) = ''0'' OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DELETE tb_SampleTest
WHERE
CODE IN(
SELECT Item.value(''.'', ''VARCHAR(20)'')
FROM @CODE.nodes(''RecordList/ID'') AS x(Item)
)
IF @@ROWCOUNT = 0
SET @ERRFLAG = 200
SET NOCOUNT OFF
Obtener valor de cadena borrar
<RecordList>
<ID>1</ID>
<ID>2</ID>
</RecordList>
Delete Id from table where Id in (select id from table)