0

我有一个SQL Server正在运行的数据库,SSMS其中包含约 75 个表。我刚刚意识到每个表都有一个modfiedBy列标题,它拼写错误,应该拼写为modifiedBy.

有没有办法通过编程方式更改(ALTER??)所有这些列标题SQL,这样我就不必右键单击->设计并在每个表上手动重新拼写它?任何人都可以提供一个可能有效的例子吗?

4

1 回答 1

1

为此,您需要一个动态 SQL 解决方案。这应该可以完成工作;只要它不破坏任何约束,键。它也不会更新任何引用旧名称的对象。

USE YourDatabase;
GO

DECLARE @SQL nvarchar(MAX);

SET @SQL = STUFF((SELECT NCHAR(10) +
                         N'EXEC sp_rename ' + QUOTENAME(s.[name] + N'.' + t.[name] + N'.' + c.[name],N'''') + N',''modifiedBy'',''COLUMN'';'
                  FROM sys.schemas s
                       JOIN sys.tables t ON s.schema_id = t.schema_id
                       JOIN sys.columns c ON t.object_id = c.object_id
                  WHERE c.[name] = N'modfiedBy'
                  FOR XML PATH(N'')),1,1,N'');
PRINT @SQL;
EXEC sp_executesql @SQL;
于 2018-11-30T22:40:31.663 回答