I když přejmenování sloupce tabulky není obtížné pomocí sp_rename
, změna odkazujících pohledů a uložených procedur není triviální bez pomoci nástrojů.
T-SQL níže vygeneruje skript pro přejmenování všech sloupců, které začínají malým písmenem. Je však křehký v tom, že přejmenování selže, pokud existují vynucené závislosti (např. objekty vázané na schéma) a nezpracuje pohledy, procesy. et. al.
SELECT
N'EXEC sp_rename '''
+ QUOTENAME(s.name) + N'.' + QUOTENAME(t.name) + N'.' + QUOTENAME(c.name)
+ ''', ''' + UPPER(LEFT(c.name, 1)) + SUBSTRING(c.name,2,127) + ''', ''COLUMN'';'
FROM sys.schemas AS s
JOIN sys.tables AS t ON t.schema_id = s.schema_id
JOIN sys.columns AS c ON c.object_id = t.object_id
WHERE
LEFT(c.name, 1) COLLATE Latin1_General_CS_AS <> UPPER(LEFT(c.name, 1)) COLLATE Latin1_General_CS_AS
AND t.is_ms_shipped = 0;
Navrhuji, abyste použili SSDT , která je součástí sady Visual Studio 2019 (včetně bezplatné edice Community Edition). Vytvořte nový projekt databáze SQL Server, importujte existující databázi, přejmenujte sloupec pomocí možnosti Refactor-->Rename a poté projekt publikujte v cílové databázi. Publikovat poskytuje možnost okamžitě použít změny a/nebo pouze vygenerovat skript. Skript bude obsahovat DDL pro přejmenování sloupce stejně jako změnu názvu sloupce ve všech odkazujících objektech.
Pokud má sloupec v zobrazeních, procesech atd. alias s nežádoucím názvem, bude nutné tyto aliasy také změnit.