我的数据库中有很多存储过程。它们都被设计为返回结果集。我遵循命名标准,所有关键字都是大写,所以如果在任何SELECT
语句中有任何列名或表名作为保留关键字,那么将使用大写。
我想把那些大写关键字转换成驼峰大小写。
例如我的一个实际存储过程:
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
这里请查看列名称TimeStamp
, Name
和表Zone
。
大约有700多个存储过程。我无法打开每个代码并手动编辑这些。
请提供给我任何想法,以更好地实现这些变化到数据库中的所有存储过程。
您可以根据需要扩展下面的查询,
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]%');
你最好下载这个奇妙的免费工具- http://www.red-gate.com/products/sql-development/sql-search/- sql server的红日搜索
然后你必须做一些工作来找到保留词- https://msdn.microsoft.com/en-us/library/ms189822.aspx
该工具为您提供了一个非常好的可见性。