首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式检索与SQLServerManagementStudioGUI返回的源代码相同的SQLServer存储过程源?

如何以编程方式检索与SQLServerManagementStudioGUI返回的源代码相同的SQLServer存储过程源?
EN

Stack Overflow用户
提问于 2018-03-27 07:40:44
回答 2查看 0关注 0票数 0

关于如何以编程方式从SQLServer 2005获取完全相同的存储过程源的任何指针,如在SQLServerManagementStudio中右键单击该存储过程并选择“修改”时?

我正在尝试使用SMO,但是有一些文本上的差异。这个过程总是有创建的,而不是修改的,并且在标题中有一些不同,比如我以编程方式获得的版本中缺少GO。我可以把这些修好,但也许还有更好的办法?

同样,我使用SMSE在SQLServer 2005中。通过VisualStudio 8 2008使用SMO。

示例:表示sp_mysp,右键单击ManagementStudio,选择Modify。

    USE [MY_DB]  
    GO  
    /****** Object:  StoredProcedure [dbo].[sp_mysp]    Script Date: 01/21/2009 17:43:18 ******/  
    SET ANSI_NULLS ON  
    GO  
    SET QUOTED_IDENTIFIER ON  
    GO  
    -- =============================================
    -- Author:      
    -- Create date: 
    -- Description: 
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_mysp]
EN

回答 2

Stack Overflow用户

发布于 2018-03-27 16:17:20

EXEC sp_helptext 'your procedure name';
票数 0
EN

Stack Overflow用户

发布于 2018-03-27 16:42:47

SQLProfiler显示了以下内容:您必须手动编写代码。

SMSE在生成语句时会执行相当长的查询字符串。

下面的查询(或类似的内容)用于提取文本:

SELECT
NULL AS [Text],
ISNULL(smsp.definition, ssmsp.definition) AS [Definition]
FROM
sys.all_objects AS sp
LEFT OUTER JOIN sys.sql_modules AS smsp ON smsp.object_id = sp.object_id
LEFT OUTER JOIN sys.system_sql_modules AS ssmsp ON ssmsp.object_id = sp.object_id
WHERE
(sp.type = N'P' OR sp.type = N'RF' OR sp.type='PC')and(sp.name=N'#test___________________________________________________________________________________________________________________00003EE1' and SCHEMA_NAME(sp.schema_id)=N'dbo')

它返回纯CREATE,然后在代码中用ALTER替换。

SET ANSI NULL以及GO语句和日期都是在此之前的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档