如得视图,存储过程,表的定义代码!
这段时间在写一个数据库管理程序,有一个功能需要获得相关表的定义代码,然后根据自身需要修改后再写入数据库,已满足自身需要!就是如何获得相关表的定义代码,很犯难!不知道怎么做,通过一上午的研究,通过阅读SQLSERVER的帮助文档,可以用EXEC sp_helptext 命令来获得 |
sp_helptext [ @objname = ] 'name' [ , [ @columnname = ] computed_column_name ] |
参数
- [ @objname = ] 'name'
-
架构范围内的用户定义对象的限定名称和非限定名称。仅当指定限定对象时才需要引号。如果提供的是完全限定名称(包括数据库名称),则数据库名称必须是当前数据库的名称。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),无默认值。
- [ @columnname = ] 'computed_column_name'
-
要显示其定义信息的计算列的名称。必须将包含列的表指定为 name。column_name 的数据类型为 sysname,无默认值。
返回代码值
0(成功)或 1(失败)
结果集
| 列名 | 数据类型 | 说明 |
|---|---|---|
|
Text |
nvarchar(255) |
对象定义 |
备注
sp_helptext 显示用于在多行中创建对象的定义。每行包含 255 个字符的 Transact-SQL 定义。定义位于 sys.sql_modules 目录视图中的 definition 列中。
权限
要求具有 public 角色的成员身份。系统对象定义对所有用户可见。用户对象的定义对于对象所有者或具有下列任一权限的被授权者可见:ALTER、CONTROL、TAKE OWNERSHIP 或 VIEW DEFINITION。
示例
A. 显示触发器的定义
以下示例将显示 AdventureWorks 数据库中的 uBillOfMaterials 触发器的定义。
USE AdventureWorks; GO EXEC sp_helptext 'Production.uBillOfMaterials'; GO | |
B. 显示计算列的定义
以下示例将显示 AdventureWorks 数据库的 SalesOrderHeader 表中计算列 TotalDue 的定义。
USE AdventureWorks; GO sp_helptext @objname = N'AdventureWorks.Sales.SalesOrderHeader', @columnname = TotalDue ; GO | |
下面是结果集:
Text -------------------------------------------- (isnull(([SubTotal]+[TaxAmt])+[Freight],(0))) | |
请参阅
参考
数据库引擎存储过程 (Transact-SQL)OBJECT_DEFINITION (Transact-SQL)
sp_help (Transact-SQL)
sys.sql_modules (Transact-SQL)
系统存储过程 (Transact-SQL)
本文介绍如何使用SQL Server中的sp_helptext存储过程来获取表、视图或存储过程的定义代码。此方法适用于需要从数据库中读取并修改表定义的应用场景。
951

被折叠的 条评论
为什么被折叠?



