在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

SQL中print、sp

106次阅读
没有评论

共计 2087 个字符,预计需要花费 6 分钟才能阅读完成。

本篇文章给大家分享的是有关 SQL 中 print、sp_helptext 的限制与扩展是怎样的,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

在 SQL 中,使用动态 SQL 是很常见的。有些复杂的计算,或是存储过程,代码很长,中间可能有多次执行 SQL 语句。而调试拼串的 SQL 语句却是件痛苦的事,很难看出来运行的语句是什么。所以我会经常使用 print 这个命令把运行前的语句打印到屏幕上,然后复制出来到另一个窗口进行调试、修改,这样就比较方便了。但是这个 print 命令有一些限制, 在单字节符集下,最大只能打印打印 8000 个字符的长度,而在双字节字符集是 4000 个。

以下存储过程可以打印完整的信息,不受长度的限制。代码如下:

IF OBJECT_ID(N sp_print_all) IS NOT NULLBEGINDROP PROCEDURE sp_print_allENDGOCREATE PROCEDURE sp_print_all (@dynamic_sql NVARCHAR(MAX))ASDECLARE @start INTDECLARE @len INTSET @start = 1SET @len = 4000WHILE (@start   LEN(@dynamic_sql))BEGINPRINT SUBSTRING(@dynamic_sql, @start, @len)SET @start = @start + @lenENDPRINT SUBSTRING(@dynamic_sql, @start, @len)GO

code-1

还有一个存储 sp_helptext,可以查询存储过程,函数等代码,使用起来也比较方便,但也有长度的限制,而且打印出来的格式跟源代码的格式有些对应不上。写了一个自定义存储过程来代替,代码如下:

IF OBJECT_ID(N sp_helptext_user) IS NOT NULLBEGINDROP PROCEDURE sp_helptext_userENDGOCREATE PROCEDURE sp_helptext_user(@obj_name NVARCHAR(200) =  )ASSET NOCOUNT ON;DECLARE @text NVARCHAR(MAX),@i INT,@text2 NVARCHAR(MAX),@db_name SYSNAME,@obj_id BIGINTSET @db_name = PARSENAME(@obj_name ,3)IF @db_name IS NULLSET @db_name = DB_NAME()ELSE IF @db_name   DB_NAME()BEGINRAISERROR(15250 ,-1 ,-1)RETURN (1)ENDSET @obj_id = OBJECT_ID(@obj_name)IF @obj_id IS NULLBEGINRAISERROR(15009 ,-1 ,-1 ,@obj_name ,@db_name)RETURN (1)ENDSELECT @text = [definition]FROM sys.all_sql_modulesWHERE [object_id] = @obj_idWHILE LEN(@text)   2000BEGINSET @i = CHARINDEX(CHAR(13) ,@text ,2000) SET @text2 = LEFT(@text ,@i)SET @text = SUBSTRING(@text ,@i + 2 ,LEN(@text)) PRINT @text2ENDPRINT @textSET NOCOUNT OFF;GO

code-2

当然,查看源代码有多种方法,可以在 SSMS 上操作等,看个人习惯或方便操作了。

详解 sp_helptext

显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。

语法

sp_helptext [@objname =] name

参数

[@objname =] name

对象的名称,将显示该对象的定义信息。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),没有默认值。

返回代码值

0(成功)或 1(失败)

注释

sp_helptext 在多个行中显示用来创建对象的文本,其中每行有 Transact-SQL 定义的 255 个字符。这些定义只驻留在当前数据库的 syscomments 表的文本中。

权限

执行权限默认授予 public 角色。

示例

下面的示例显示 employee_insupd 触发器的文本,该触发器在数据库 pubs 中。

USE pubsEXEC sp_helptext  employee_insupd

以上就是 SQL 中 print、sp_helptext 的限制与扩展是怎样的,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2087字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 每日更新在线观看av | 特级黄色视频毛片 | 人人澡人人透人人爽 | 四虎影院精品在线观看 | 草草青| 久久青青成人亚洲精品 | 中国女人做爰视频 | 日日干日日操 | 亚洲精品女同一区二区在线观看 | 亚洲男人a天堂在线2184 | 免费一级成人免费观看 | 亚洲av乱码一区二区三区 | 成人亚洲欧美日韩中文字幕 | 亚洲人成影院在线观看 | 日本大片免费观看视频 | 国产精品白浆无码流出 | 久久婷婷国产一区二区三区 | 成人午夜影院在线观看 | 在线天堂中文在线资源网 | 亚洲成aⅴ人片久青草影院 亚洲成aⅴ人在线观看 | 欧美人与动性xxxxx杂 | 欧洲一区| 亚洲中文字幕无码爆乳 | 性欧美丰满熟妇xxxx性久久久 | 美女自拍视频 | 免费男女乱淫真视频播放 | 最新精品国偷自产在线 | 精品国产福利在线观看91啪 | 亚洲黄色在线视频 | 老司机免费在线观看视频 | 偷拍肉窝窝视频在线播放 | 深夜久久 | 国产2区| 久久影院中文字幕 | 97国产在线观看 | 精品无码国产污污污免费网站 | 欧美人人| 亚洲国产欧洲综合997久久 | 亚洲视频手机在线 | 欧美成人a | 婷婷久久久亚洲欧洲日产国码av |