gpt4 book ai didi

SQL Server - 查找不删除临时表的 SP

转载 作者:行者123 更新时间:2023-12-01 06:17:46 25 4
gpt4 key购买 nike

(1) 有没有好的/靠谱的方法按顺序查询系统目录
查找在其
创建一些临时表的所有存储过程源代码主体,但不要将它们放在主体的末尾

(2) 一般情况下,可以在 SP 中创建临时表而不删除
它们在同一个 SP 中会导致一些问题,如果是,是什么问题?

我是在
的背景下问这个问题的SQL Server 2008 R2 和 SQL Server 2012 居多。

非常感谢。

最佳答案

不能 100% 确定这是否准确,因为我没有一组好的测试数据可供使用。首先,您需要一个函数来计算字符串的出现次数(无耻地从 here 中窃取):

CREATE FUNCTION dbo.CountOccurancesOfString
(
@searchString nvarchar(max),
@searchTerm nvarchar(max)
)
RETURNS INT
AS
BEGIN
return (LEN(@searchString)-LEN(REPLACE(@searchString,@searchTerm,'')))/LEN(@searchTerm)
END

接下来像这样使用这个函数。当创建数量与丢弃数量不匹配时,它会在过程文本中搜索字符串和报告:

WITH CreatesAndDrops AS (
SELECT procedures.name,
dbo.CountOccurancesOfString(UPPER(syscomments.text), 'CREATE TABLE #') AS Creates,
dbo.CountOccurancesOfString(UPPER(syscomments.text), 'DROP TABLE #') AS Drops
FROM sys.procedures
JOIN sys.syscomments
ON procedures.object_id = syscomments.id
)

SELECT * FROM CreatesAndDrops
WHERE Creates <> Drops

关于SQL Server - 查找不删除临时表的 SP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25912347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com