0

我的数据库中有大量存储过程。所有设计都返回结果集。我遵循命名标准,所有关键字都是大写因此,如果在SELECT语句中的任何一个中有任何列名或表名作为保留关键字,那么这将是大写。在SQL Server存储过程中查找ColumnNames或TableNames作为保留关键字

我想将这些UPPERCASE关键字转换为骆驼大小写。

例如我的实际存储过程之一:

CREATE PROCEDURE prc_getresults 
AS 
BEGIN 
    SELECT ZD.Id 
     ,ZD.NAME 
     ,ZD.TIMESTAMP 
     ,ZD.CreatedBy 
    FROM ZoneDetails ZD 
    INNER JOIN ZONE Z ON Z.Id = ZD.ZoneId 
END 

我的转换后,预计代码将是

CREATE PROCEDURE prc_getresults 
AS 
BEGIN 
    SELECT ZD.Id 
     ,ZD.Name 
     ,ZD.TimeStamp 
     ,ZD.CreatedBy 
    FROM ZoneDetails ZD 
    INNER JOIN Zone Z ON Z.Id = ZD.ZoneId 
END 

下面请看列名TimeStampName和表Zone

有大约700多个存储过程。我无法打开每个代码并手动编辑这些代码。

请向我提供任何建议,以便更好地对数据库中的所有存储过程实施这些更改。

+0

您需要使用第三方工具来完成此操作。我最喜欢的格式化程序http://www.dpriver.com/dlaction.php –

回答

0

可以扩展下面的查询您的需求,

SELECT DISTINCT 
     o.name AS Object_Name, 
     o.type_desc 
    FROM sys.sql_modules m 
     INNER JOIN 
     sys.objects o 
     ON m.object_id = o.object_id 
WHERE m.definition In ('%\[TimeStamp\]%', '%\[Name\]%', '%\[Zone\]%'); 
+0

我举了一个例子,但实际上我必须检查所有关键字.... – StackUser

+0

不可能使用T-SQL –

相关问题