Pravidla pro aktualizaci výsledků (vizuální databázové nástroje)
platí pro:SQL Server
V mnoha případech můžete aktualizovat sadu výsledků zobrazenou v podokně výsledků . Avšak v některých případech nemůžete.
Obecně platí, že pokud chcete aktualizovat výsledky, musí Návrhář dotazů a zobrazení mít dostatek informací k jednoznačné identifikaci řádku v tabulce. Příkladem je, že dotaz do výstupního seznamu obsahuje primární klíč. Kromě toho musíte mít dostatečná oprávnění k aktualizaci databáze.
Pokud je váš dotaz založený na zobrazení, možná ho budete moct aktualizovat. Platí stejné pokyny, s výjimkou toho, že platí pro podkladové tabulky v zobrazení, nejen pro samotné zobrazení.
Poznámka
Návrhář dotazů a zobrazení nemůže předem určit, zda lze aktualizovat sadu výsledků na základě zobrazení. Proto se zobrazí všechna zobrazení, i když je nebudete moct aktualizovat.
Následující tabulka shrnuje konkrétní instance, ve kterých můžete a nemusí být schopni aktualizovat výsledky dotazu v podokně Výsledky. V mnoha případech databáze, kterou používáte, určuje, jestli můžete aktualizovat výsledky dotazu.
Dotaz | Dají se výsledky aktualizovat? |
---|---|
Dotaz na základě jedné tabulky s primárním klíčem v seznamu výstupů | Ano (s výjimkou níže uvedeného). |
Dotaz na základě tabulky bez jedinečného indexu a bez primárního klíče | Závisí na dotazu a databázi. Některé databáze umožňují aktualizace, pokud jsou k dispozici dostatečné informace pro jedinečnou identifikaci záznamů. |
Dotaz založený na několika tabulkách, které nejsou spojené | Ne. |
Dotaz na základě dat označených jako jen pro čtení v databázi | Ne. |
Dotaz na základě zobrazení, které zahrnuje jednu tabulku bez omezení | Ano (s výjimkou níže uvedeného). |
Dotaz na základě tabulek spojených s relací 1:1 | Ano (s výjimkou níže uvedeného). |
Dotaz založený na tabulkách spojených s relací 1:N | Obvykle. |
Dotaz na základě tří nebo více tabulek, ve kterých existuje relace M:N | Ne. |
Dotaz na základě tabulky, pro kterou není uděleno oprávnění k aktualizaci | Může odstranit, ale neaktualizovat. |
Dotaz na základě tabulky, pro kterou není uděleno oprávnění k odstranění | Může aktualizovat, ale neodstraňovat. |
Agregační dotaz | Ne. |
Dotaz na základě poddotazu, který obsahuje součty nebo agregační funkce | Ne. |
Dotaz obsahující klíčové slovo DISTINCT pro vyloučení duplicitních řádků | Ne. |
Dotaz, jehož klauzule FROM obsahuje uživatelem definovanou funkci, která vrací tabulku a uživatelem definovaná funkce obsahuje více příkazů select. | Ne. |
Dotaz, jehož klauzule FROM obsahuje vloženou uživatelem definovanou funkci | Ano. |
Kromě toho možná nebudete moct aktualizovat konkrétní sloupce ve výsledcích dotazu. Následující seznam shrnuje konkrétní typy sloupců, které nelze aktualizovat v podokně Výsledky.
Sloupce založené na výrazech
Sloupce založené na skalárních uživatelem definovaných funkcích
Řádky nebo sloupce odstraněné jiným uživatelem
Řádky nebo sloupce uzamčené jiným uživatelem (uzamčené řádky se obvykle dají aktualizovat hned po odemknutí).
Sloupec časového razítka nebo sloupec BLOB