Även om det inte är svårt att byta namn på tabellkolumnen med sp_rename
, att ändra referensvyer och lagrade procedurer är inte trivialt utan hjälp av verktyg.
T-SQL nedan kommer att generera skript för att byta namn på alla kolumner som börjar med en liten bokstav. Den är dock ömtålig genom att namnbyten kommer att misslyckas när påtvingade beroenden existerar (t.ex. schemabundna objekt) och kommer inte att hantera vyer, procs. 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;
Jag föreslår att du använder SSDT , som ingår i Visual Studio 2019 (inklusive den kostnadsfria Community Edition). Skapa ett nytt SQL Server-databasprojekt, importera den befintliga databasen, byt namn på kolumnen med alternativet Refactor-->Rename och publicera sedan projektet mot måldatabasen. Publicera ger möjlighet att tillämpa ändringarna omedelbart och/eller bara generera skriptet. Skriptet kommer att inkludera DDL för att byta namn på kolumnen liksom att ändra kolumnnamnet i alla refererande objekt.
Om kolumnen är aliasad med det oönskade namnet i vyer, processer, etc., måste dessa alias också ändras.