我的数据库中有很多存储过程。所有都旨在返回结果集。我遵循命名标准,所有关键字都是 UPPERCASE ,所以如果任何SELECT
语句中的任何列名或表名作为保留关键字那么那将是大写的。
我想将这些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
请在此处查看列名称TimeStamp
,Name
和表格Zone
。
大约有700多个存储过程。我无法打开每个代码并手动编辑它们。
请向我提出任何想法,以便更好地对数据库中的所有存储过程实施这些更改。
答案 0 :(得分: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\]%');
答案 1 :(得分:0)
您最好下载这个出色的免费工具 - http://www.red-gate.com/products/sql-development/sql-search/ - sql server的红日期搜索。
然后你必须做一些工作来找到保留字 - https://msdn.microsoft.com/en-us/library/ms189822.aspx
该工具为您提供了非常好的可视性。