sql >> Databáze >  >> RDS >> Sqlserver

T-SQL Odstraní všechny řádky z tabulky, když je poddotaz chybný

Jako TableAID v TableA neexistuje , dotaz používá sloupec z TableB . Dotaz je tedy stejný jako:

delete from TableB
where id in (
  select TableB.TableAID
  from TableA
  where GUID = 'fdjkhflafdhf'
)

Takže v podstatě to dělá:

delete from TableB
where id in (TableAID)

Pokud používáte poddotazy, je nejlepší při odkazování zmínit názvy tabulek. Následující BUDE vyvolá výjimku:

 delete from TableB
    where id in (
      select TableA.TableAID
      from TableA
      where TableA.GUID = 'fdjkhflafdhf'
    )

Dále bych použil alias, abychom věděli, na který dotaz odkazujeme:

 delete from TableB
    where id in (
      select a.TableAID
      from TableA a
      where a.GUID = 'fdjkhflafdhf'
    )



  1. DataGridView nezobrazuje mé sloupce

  2. Provést více dotazů na migraci tabulky laravel alter v jednom?

  3. Použijte výsledek pg_dump jako vstup pro pg_restore

  4. Homebrew postgres zlomený