Поделиться через


Rules for Updating Results

In many cases, you can update the result set displayed in the Results pane. However, in some cases you cannot.

In general, in order to update results, the Query and View Designer must have sufficient information to uniquely identify the row in the table. An example is if the query includes a primary key in the output list. In addition, you must have sufficient permission to update the database.

If your query is based on a view, you might be able to update it. The same guidelines apply, except that they apply to the underlying tables in the view, not just to the view itself.

Note

The Query and View Designer cannot determine in advance whether you can update a result set based on a view. Therefore, it displays all views, even though you might not be able to update them.

The following table summarizes specific instances in which you might and might not be able to update query results in the Results pane. In many cases, the database you are using dictates whether you can update query results.

Query

Can results be updated?

Query based on one table with primary key in the output list

Yes (except as listed below).

Query based on a table with no unique index and without a primary key

Depends on query and database. Some databases allow updates if sufficient information is available to uniquely identify records.

Query based on multiple tables which are not joined

No.

Query based on data marked as read-only in the database

No.

Query based on a view that involves one table with no constraints

Yes (except as listed below).

Query based on tables joined with a one-to-one relationship

Yes (except as listed below).

Query based on tables joined with a one-to-many relationship

Usually.

Query based on three or more tables in which there is a many-to-many relationship

No.

Query based on a table for which update permission is not granted

Can delete but not update.

Query based on a table for which delete permission is not granted

Can update but not delete.

Aggregate query

No.

Query based on a subquery that contains totals or aggregate functions

No.

Query that includes the DISTINCT keyword to exclude duplicate rows

No.

Query whose FROM clause includes a user-defined function that returns a table and the user-defined function contains multiple select statements

No.

Query whose FROM clause includes an inline user-defined function

Yes.

In addition, you might not be able to update specific columns in the query results. The following list summarizes specific types of columns that you cannot update in the Results pane.

  • Columns based on expressions

  • Columns based on scalar user-defined functions

  • Rows or columns deleted by another user

  • Rows or columns locked by another user (locked rows can usually be updated as soon as they are unlocked)

  • Timestamp or BLOB columns

See Also

Concepts

Work You Can Do With the Visual Database Tools

Other Resources

Designing Queries and Views

Reference (Visual Database Tools)