In SQL Server, il OPENQUERY la funzione rowset ti consente di eseguire una query pass-through su un server collegato.
OPENQUERY è comunemente indicato nel FROM clausola di una query come se fosse una tabella, ma può anche essere referenziata come tabella di destinazione di un INSERT , UPDATE o DELETE dichiarazione.
Questo articolo presenta un esempio di utilizzo di OPENQUERY per eseguire un DELETE query pass-through.
Esempio
Supponiamo che il server collegato chiamato Homer ha una tabella in Pets database chiamato Cats con i seguenti dati.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
); Risultato:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Short Tail | +---------+------------+
E supponiamo di voler eliminare uno dei gatti dal database.
Potremmo farlo usando un DELETE query pass-through sul server collegato, in questo modo.
DELETE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 2'
); Risultato:
(1 row affected)
Controlla i risultati
Ora possiamo eseguire un SELECT query pass-through per vedere i risultati.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
); Risultato:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 3 | Short Tail | +---------+------------+
Come previsto, la seconda riga è stata eliminata e ora rimangono solo due righe.
Una cosa da notare è che OPENQUERY non accetta variabili per i suoi argomenti.