我知道您可以右键单击选定的VIEW / SP并选择CREATE-TO,然后您可以复制生成的脚本。但这必须通过SQL客户端完成。
我希望做的是每当我的供应商对VIEW / SP进行更新时,我想在从供应商处运行ALTER VIEW / SP命令之前执行受影响的VIEW / SP的备份。我希望使用脚本而不是人机界面来做到这一点,以减少人为错误的风险。
有人可以帮忙吗?
答案 0 :(得分:2)
这应该让你开始。
DECLARE @SQL VARCHAR(MAX)
SET @SQL = ( SELECT Routine_Definition
FROM ( SELECT Routine_Catalog, Routine_Schema, Routine_Name, Routine_Definition
FROM INFORMATION_SCHEMA.ROUTINES
WHERE Routine_type = 'PROCEDURE'
UNION ALL
SELECT Table_Catalog, Table_Schema, Table_Name, View_Definition
FROM INFORMATION_SCHEMA.VIEWS
) def
WHERE Routine_Catalog = 'YourDatabase'
AND Routine_Schema = 'YourSchema'
AND Routine_Name = 'YourView/SP'
)
IF @SQL IS NULL
RETURN
EXEC SP_RENAME 'YourDatabase.YourSchema.YourView/SP', 'NewName', 'OBJECT'
EXEC (@sql)
答案 1 :(得分:0)
以下是您可以使用C#代码
找到如何创建/更改/删除存储过程的链接您可以使用C#或所需技术以此形式创建前端表单(GUI) 您的供应商输入存储过程的详细信息。
http://msdn.microsoft.com/en-us/library/ms162190.aspx
以下是您在Database中运行的脚本,以查找更改/创建存储过程的详细信息
SELECT name 'Alterd Procedures'
FROM sys.objects
WHERE type = 'P'
AND DATEDIFF(D,modify_date, GETDATE()) < 5
SELECT name 'Created Procedures'
FROM sys.objects
WHERE type = 'P'
AND DATEDIFF(D,create_date, GETDATE()) < 5
5是天数,你可以根据需要改变它
您可以将“P”更改为“V”以获取视图