请教高手,如何用一条命令,获取到已知的数据库对象(如存储过程)的创建语句? sp_helptext @objname = 视图/存储过程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取存储过程的创建语句: sp_HelpText '储过程名' exec sp_helptext [ @objname = ] 'name' sp_helptext显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。语法sp_helptext [ @objname = ] 'name'参数[@objname =] 'name'对象的名称,将显示该对象的定义信息。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),没有默认值。 返回代码值0(成功)或 1(失败)结果集列名 数据类型 描述 Text nvarchar(255) 对象定义文本 注释sp_helptext 在多个行中显示用来创建对象的文本,其中每行有 Transact-SQL 定义的 255 个字符。这些定义只驻留在当前数据库的 syscomments 表的文本中。权限执行权限默认授予 public 角色。示例下面的示例显示 employee_insupd 触发器的文本,该触发器在数据库 pubs 中。USE pubsEXEC sp_helptext 'employee_insupd' sp_helptext 视图/存储过程sp_helptext @objname='视图/存储过程'exec sp_helptext 视图/存储过程exec sp_helptext @objname='视图/存储过程'以上均可以,其实他们是一种方法的不同写法,我试过均可。其他的可以参考以下sql的帮助文档,很爽的。ok! sp_helptext 获得存储过程/视图/自定义函数的文本更详细的还是用生成SQL脚本比较好. 当然首选还是我的sp_script,因为sp_helptext不能得到表的内容,SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOALTER procedure sp_script @objectname varchar(50)as/******************** 修改日期:2002-09-10 修改人:qiubole 备注:取得脚本********************/declare @databasename varchar(50)set @databasename = DB_NAME(DB_ID())declare @str varchar(4000)DECLARE @object intdeclare @objectdatabase intDECLARE @hr intDECLARE @src varchar(255), @desc varchar(255)DECLARE @DataBaseCount int, @Current int, @DataBase intdeclare @table int, @tables intEXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUTIF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc RETURNENDEXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'byserver', 'sa', ''IF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @object RETURNENDEXEC @hr = sp_OAGetProperty @object, 'Databases', @objectdatabase outputIF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @objectdatabase, @src OUT, @desc OUT SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc RETURNENDEXEC @hr = sp_OAGetProperty @objectdatabase, 'count', @DataBaseCount outputIF @hr <> 0BEGIN EXEC sp_OAGetErrorInfo @objectdatabase, @src OUT, @desc OUT SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc RETURNENDset @Current = 1loop1: EXEC @hr = sp_OAMethod @objectdatabase, 'Item', @Database output, @databasename IF @hr <> 0 BEGIN EXEC sp_OAGetErrorInfo @objectdatabase RETURN ENDEXEC @hr = sp_OAMethod @Database, 'GetObjectByName', @table output, @objectname IF @hr <> 0 BEGIN EXEC sp_OAGetErrorInfo @Database RETURN ENDExec @hr = sp_OAMethod @table, 'Script', @str output IF @hr <> 0 BEGIN EXEC sp_OAGetErrorInfo @table RETURN ENDprint @strGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO 楼上的说得很好其实,也没有必要做得那么麻烦,完全可以在企业管理器下,右击你的数据库,然后选择所有任务下的生成sql脚本,然后选择你要查看的表、视图、存储过程、用户函数、用户数据类型等,点击确定或预览就可以看到源代码了 关于计算时间差的问题,请各位大虾多多赐教阿,tks…… 请问如何把查询的结果集写入表中 在PowerDesigner中如何定义SQL Server 的SCHEMA 如何查询相同的记录? 表分区和索引分区的三个问题 高手:sp_executesql与存储过程结合使用问题? 在企业管理器里无法打开sqlserver组呀,提示“连接失败,请检查SQL SERVER注册属性” 请大家帮我分析这个一个问题 SQL 建表问题? foxpro的问题,一定给分 关于数据库的恢复(急,急) datediff()怎样可以使结果带正负号?怎样使结果不带正负号?
显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。语法
sp_helptext [ @objname = ] 'name'参数
[@objname =] 'name'对象的名称,将显示该对象的定义信息。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),没有默认值。 返回代码值
0(成功)或 1(失败)结果集
列名 数据类型 描述
Text nvarchar(255) 对象定义文本
注释
sp_helptext 在多个行中显示用来创建对象的文本,其中每行有 Transact-SQL 定义的 255 个字符。这些定义只驻留在当前数据库的 syscomments 表的文本中。权限
执行权限默认授予 public 角色。示例
下面的示例显示 employee_insupd 触发器的文本,该触发器在数据库 pubs 中。USE pubs
EXEC sp_helptext 'employee_insupd'
sp_helptext @objname='视图/存储过程'
exec sp_helptext 视图/存储过程
exec sp_helptext @objname='视图/存储过程'
以上均可以,其实他们是一种方法的不同写法,我试过均可。其他的可以参考以下sql的帮助文档,很爽的。ok!
GO
SET ANSI_NULLS ON
GOALTER procedure sp_script
@objectname varchar(50)
as
/********************
修改日期:2002-09-10
修改人:qiubole
备注:取得脚本
********************/
declare @databasename varchar(50)set @databasename = DB_NAME(DB_ID())declare @str varchar(4000)
DECLARE @object int
declare @objectdatabase int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
DECLARE @DataBaseCount int, @Current int, @DataBase intdeclare @table int, @tables intEXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
ENDEXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'byserver',
'sa', ''IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
ENDEXEC @hr = sp_OAGetProperty @object, 'Databases', @objectdatabase outputIF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @objectdatabase, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
ENDEXEC @hr = sp_OAGetProperty @objectdatabase, 'count', @DataBaseCount output
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @objectdatabase, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
set @Current = 1
loop1: EXEC @hr = sp_OAMethod @objectdatabase, 'Item', @Database output, @databasename IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @objectdatabase
RETURN
END
EXEC @hr = sp_OAMethod @Database, 'GetObjectByName', @table output, @objectname IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Database
RETURN
ENDExec @hr = sp_OAMethod @table, 'Script', @str output
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @table
RETURN
ENDprint @str
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
其实,也没有必要做得那么麻烦,完全可以在企业管理器下,右击你的数据库,然后选择所有任务下的生成sql脚本,然后选择你要查看的表、视图、存储过程、用户函数、用户数据类型等,点击确定或预览就可以看到源代码了