我需要在SQL Server 2008中搜索包含数据库字段名称或变量名称的存储过程.
我需要检查上次功能何时更改.我知道如何检查创建日期(它位于SQL Server Management Studio的函数属性窗口中).
我发现在SQL Server 2000中无法检查修改日期(请看这篇文章:是否可以确定SQL Server 2000中最后一次修改存储过程的时间?)
是否可以在SQL Server 2008中进行检查?MS是否在系统表中添加了一些允许检查它的新功能?
stored-procedures sql-function sql-server-2008 sql-server-2008-r2
我的数据库中有几个存储过程,结构如下:
CREATE PROCEDURE MyProcedure (.....)
AS
DECLARE @myvar NVARCHAR(100);
SET @myvar = (SELECT .... FROM my_table WHERE ....)
GO
Run Code Online (Sandbox Code Playgroud)
我被要求在每个具有它的过程my_table中将该FROM子句中的表替换为另一个.
我经历了很多研究,但是我应该创建一个独立工作的脚本,但我找不到合适的东西.例如,我发现sp_helpTetx它显示了存储过程的源代码,但有没有办法将其放入变量中进行编辑?
我发现这段代码可以找到任何引用单个特定列的存储过程。现在我想创建一个查找引用多个特定列的存储过程的程序。
SELECT DISTINCT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%tbl_name%'
AND OBJECT_DEFINITION(OBJECT_ID) LIKE '%CreatedDate%';
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我有时可以指定列可能来自哪个表(有时是多个表)?
关于已弃用功能(多于两部分的列名称)的定义是
查询在列列表中使用了 3 部分或 4 部分名称。更改查询以使用符合标准的 2 部分名称。每次编译发生一次。
我可以为这个功能提供一些例子吗?
而且由于我有一些代码使用了 sql server 的某些功能,例如:
Select xml.Item.value('[something]', 'varchar(20)') AS something from xml
Run Code Online (Sandbox Code Playgroud)
部分 xml.Item.value(...) 是否视为列列表中的 3 部分或 4 部分名称?
而且由于我只是手动查看数据库中的存储过程来搜索这个已弃用的功能,还有其他方法(例如查询)可以在我的数据库中找出这些内容吗?
非常感谢