Implementace sestavení
platí pro:SQL Server
Tento článek obsahuje informace o následujících oblastech, které vám pomůžou implementovat sestavení v databázi a pracovat s těmito sestaveními:
- Vytváření sestavení
- Úprava sestavení
- Vyřazení, zakázání a povolení sestavení
- Správa verzí sestavení
Vytváření sestavení
Sestavení se vytvářejí na SQL Serveru pomocí příkazu Transact-SQL CREATE ASSEMBLY
nebo v sadě SQL Server Management Studio pomocí editoru s asistencí sestavení. Kromě toho nasazení projektu SQL Serveru v sadě Visual Studio zaregistruje sestavení v databázi, která byla zadána pro projekt. Další informace najdete v tématu Nasazení databázových objektů CLR.
- S jazykem Transact-SQL: CREATE ASSEMBLY (Transact-SQL)
- S aplikací SQL Server Management Studio: vlastnosti sestavení
Úprava sestavení
Sestavení jsou v SQL Serveru upravena pomocí příkazu Transact-SQL ALTER ASSEMBLY
nebo v aplikaci SQL Server Management Studio pomocí editoru s asistencí sestavení.
- S jazykem Transact-SQL:
ALTER ASSEMBLY (Transact-SQL) - S aplikací SQL Server Management Studio: vlastnosti sestavení
Sestavení můžete upravit, když chcete provést následující akce:
Změňte implementaci sestavení tak, že nahrajete novější verzi binárních souborů sestavení. Další informace najdete v tématu Správa verzí sestavení dále v tomto článku.
Změňte sadu oprávnění sestavení. Další informace naleznete v tématu Návrh sestavení.
Umožňuje změnit viditelnost sestavení. Viditelná sestavení jsou k dispozici pro odkazování na SQL Server. Nevisovatelná sestavení nejsou k dispozici, i když jsou nahraná do databáze. Ve výchozím nastavení jsou sestavení nahraná do instance SQL Serveru viditelná.
Přidejte nebo zahoďte ladicí nebo zdrojový soubor přidružený k sestavení.
Odstranění, zakázání a povolení sestavení
Sestavení se zahodí pomocí příkazu Transact-SQL DROP ASSEMBLY
nebo aplikace SQL Server Management Studio.
- S jazykem Transact-SQL: DROP ASSEMBLY (Transact-SQL)
- S aplikací SQL Server Management Studio: odstranit objekty
Ve výchozím nastavení jsou všechna sestavení vytvořená v SYSTÉMU SQL Server zakázána. Pomocí možnosti clr enabled
uložené procedury sp_configure
systému můžete zakázat nebo povolit provádění všech sestavení, která jsou nahraná na SQL Server. Zakázáním spuštění sestavení se zabrání provádění funkcí CLR (Common Language Runtime), uložených procedur, triggerů, agregací a uživatelsky definovaných typů, a zastaví se všechny aktuálně spuštěné. Zakázání spuštění sestavení nezakazuje možnost vytvářet, měnit ani odstraňovat sestavení. Další informace naleznete v tématu Konfigurace serveru: clr povoleno.
Další informace naleznete v tématu sp_configure.
Správa verzí sestavení
Při nahrání sestavení do instance SQL Serveru se sestavení uloží a spravuje v rámci katalogů databázových systémů. Všechny změny provedené v definici sestavení v rozhraní .NET Framework by se měly rozšířit do sestavení, které je uloženo v katalogu databáze.
Pokud potřebujete upravit sestavení, musíte vydat příkaz ALTER ASSEMBLY
pro aktualizaci sestavení v databázi. Tento příkaz aktualizuje sestavení na nejnovější kopii modulů rozhraní .NET Framework, které uchovávají jeho implementaci.
Klauzule WITH UNCHECKED DATA
příkazu ALTER ASSEMBLY
dává SQL Serveru pokyn, aby aktualizoval i ta sestavení, na kterých jsou trvalá data v databázi závislá. Konkrétně je nutné zadat WITH UNCHECKED DATA
, pokud existuje některá z následujících možností:
Trvalé počítané sloupce, které odkazují na metody v sestavení přímo nebo nepřímo prostřednictvím Transact-SQL funkcí nebo metod.
Sloupce uživatelem definovaného typu CLR, které závisí na sestavení, a typ implementuje formát serializace
UserDefined
(bezNative
).
Opatrnost
Pokud není zadaný WITH UNCHECKED DATA
, SQL Server se pokusí zabránit spuštění ALTER ASSEMBLY
, pokud nová verze sestavení ovlivní existující data v tabulkách, indexech nebo jiných trvalých lokalitách. SQL Server ale nezaručuje, že počítané sloupce, indexy, indexovaná zobrazení nebo výrazy budou konzistentní s podkladovými rutinami a typy při aktualizaci sestavení CLR. Při provádění ALTER ASSEMBLY
buďte opatrní, abyste měli jistotu, že nedošlo k neshodě mezi výsledkem výrazu a hodnotou založenou na daném výrazu uloženém v sestavení.
Spuštění ALTER ASSEMBLY
pomocí klauzule WITH UNCHECKED DATA
mohou spustit pouze členové db_owner a db_ddlowner pevné databázové role.
SQL Server odešle zprávu do protokolu událostí aplikace systému Windows, že sestavení bylo změněno s nezaškrtnutými daty v tabulkách. SQL Server pak označí všechny tabulky, které obsahují data závislá na sestavení, jako nezaškrtnutá data. Sloupec has_unchecked_assembly_data
zobrazení katalogu sys.tables
obsahuje hodnotu 1
pro tabulky, které obsahují nezaškrtnutá data, a 0
pro tabulky bez nezaškrtnutých dat.
Pokud chcete vyřešit integritu nezaškrtnutých dat, spusťte DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS
pro každou tabulku, která má nezaškrtnutá data. Pokud DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS
selže, musíte buď odstranit řádky tabulky, které nejsou platné, nebo upravit kód sestavení tak, aby řešil problémy, a pak vydat další příkazy ALTER ASSEMBLY
.
ALTER ASSEMBLY
změní verzi sestavení. Token jazykové verze a veřejného klíče sestavení zůstávají stejné. SQL Server neumožňuje registraci různých verzí sestavení se stejným názvem, jazykovou verzí a veřejným klíčem.
Interakce se zásadami pro celou počítač pro vazbu verzí
Pokud jsou odkazy na sestavení uložená na SQL Serveru přesměrovány na konkrétní verze pomocí zásad vydavatele nebo zásad správce na úrovni počítače, musíte provést jednu z následujících akcí:
Ujistěte se, že nová verze, do které se toto přesměrování provádí, je v databázi.
Upravte všechny příkazy na soubory externích zásad počítače nebo zásady vydavatele, abyste měli jistotu, že odkazují na konkrétní verzi, která je v databázi.
Jinak se pokus o načtení nové verze sestavení do instance SQL Serveru nezdaří.
Další informace naleznete v tématu ALTER ASSEMBLY.
Související obsah
- sestavení
(databázový stroj) - Získání informací o sestaveních