INSERT Statement
The conditions for supporting INSERT statements against a remote table are less stringent than for UPDATE and DELETE statements:
- The provider must support IRowsetChange::InsertRow on the rowset opened on the base table being inserted into.
- If the provider does not support ITransactionLocal, INSERT statements are allowed only if the Non-transacted updates option is set for that linked server and if the statement is not in a user transaction.
- If the provider does not support ITransactionJoin, INSERT statements are allowed only if they are not in a user transaction.
SQL Server uses IOpenRowset::OpenRowset to open a rowset on the base table and calls IRowsetChange::InsertRow to insert new rows into the base rowset.