最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中print、sp_helptext的限制與擴展

 更新時間:2016年02月02日 11:23:12   作者:FishParadise  
這篇文章主要介紹了print、sp_helptext的限制與擴展 的相關資料,需要的朋友可以參考下

在SQL中,使用動態(tài)SQL是很常見的。有些復雜的計算,或是存儲過程,代碼很長,中間可能有多次執(zhí)行SQL語句。而調試拼串的SQL語句卻是件痛苦的事,很難看出來運行的語句是什么。所以我會經常使用print這個命令把運行前的語句打印到屏幕上,然后復制出來到另一個窗口進行調試、修改,這樣就比較方便了。但是這個print命令有一些限制,在單字節(jié)符集下,最大只能打印打印8000個字符的長度,而在雙字節(jié)字符集是4000個。

以下存儲過程可以打印完整的信息,不受長度的限制。代碼如下:

IF OBJECT_ID(N'sp_print_all') IS NOT NULL
BEGIN
DROP PROCEDURE sp_print_all
END
GO
CREATE PROCEDURE sp_print_all (@dynamic_sql NVARCHAR(MAX))
AS
DECLARE @start INT
DECLARE @len INT
SET @start = 1
SET @len = 4000
WHILE (@start < LEN(@dynamic_sql))
BEGIN
PRINT SUBSTRING(@dynamic_sql, @start, @len)
SET @start = @start + @len
END
PRINT SUBSTRING(@dynamic_sql, @start, @len)
GO 

code-1

還有一個存儲sp_helptext,可以查詢存儲過程,函數(shù)等代碼,使用起來也比較方便,但也有長度的限制,而且打印出來的格式跟源代碼的格式有些對應不上。寫了一個自定義存儲過程來代替,代碼如下:

IF OBJECT_ID(N'sp_helptext_user') IS NOT NULL
BEGIN
DROP PROCEDURE sp_helptext_user
END
GO
CREATE PROCEDURE sp_helptext_user(@obj_name NVARCHAR(200) = '')
AS
SET NOCOUNT ON;
DECLARE @text NVARCHAR(MAX)
,@i INT
,@text2 NVARCHAR(MAX)
,@db_name SYSNAME
,@obj_id BIGINT
SET @db_name = PARSENAME(@obj_name ,3)
IF @db_name IS NULL
SET @db_name = DB_NAME()
ELSE 
IF @db_name <> DB_NAME()
BEGIN
RAISERROR(15250 ,-1 ,-1)
RETURN (1)
END
SET @obj_id = OBJECT_ID(@obj_name)
IF @obj_id IS NULL
BEGIN
RAISERROR(15009 ,-1 ,-1 ,@obj_name ,@db_name)
RETURN (1)
END
SELECT @text = [definition]
FROM sys.all_sql_modules
WHERE [object_id] = @obj_id
WHILE LEN(@text) > 2000
BEGIN
SET @i = CHARINDEX(CHAR(13) ,@text ,2000) 
SET @text2 = LEFT(@text ,@i)
SET @text = SUBSTRING(@text ,@i + 2 ,LEN(@text)) 
PRINT @text2
END
PRINT @text
SET NOCOUNT OFF;
GO 

code-2

當然,查看源代碼有多種方法,可以在SSMS上操作等,看個人習慣或方便操作了。

詳解sp_helptext

顯示規(guī)則、默認值、未加密的存儲過程、用戶定義函數(shù)、觸發(fā)器或視圖的文本。

語法

sp_helptext [ @objname = ] 'name'

參數(shù)

[@objname =] 'name'

對象的名稱,將顯示該對象的定義信息。對象必須在當前數(shù)據(jù)庫中。name 的數(shù)據(jù)類型為 nvarchar(776),沒有默認值。

返回代碼值

0(成功)或 1(失?。?/p>

注釋

sp_helptext 在多個行中顯示用來創(chuàng)建對象的文本,其中每行有 Transact-SQL 定義的 255 個字符。這些定義只駐留在當前數(shù)據(jù)庫的 syscomments 表的文本中。

權限

執(zhí)行權限默認授予 public 角色。

示例

下面的示例顯示 employee_insupd 觸發(fā)器的文本,該觸發(fā)器在數(shù)據(jù)庫 pubs 中。

USE pubs
EXEC sp_helptext 'employee_insupd'

相關文章

  • 使用SQL語句將相同名的多行字段內容拼接(方法詳解)

    使用SQL語句將相同名的多行字段內容拼接(方法詳解)

    這篇文章主要介紹了使用SQL語句將相同名的多行字段內容拼接起來,可以使用GROUP_CONCAT函數(shù)來實現(xiàn)相同名稱的多行字段內容拼接,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • T-SQL中使用正則表達式函數(shù)

    T-SQL中使用正則表達式函數(shù)

    有想過在T-Sql使用正則表達式嗎?是的,完全可以的,我們可以用SQL SERVER CLR sql function來實現(xiàn)這一功能。
    2010-06-06
  • 拯救你的數(shù)據(jù) 通過日志恢復MSSQL數(shù)據(jù)

    拯救你的數(shù)據(jù) 通過日志恢復MSSQL數(shù)據(jù)

    這篇文章主要為大家詳細介紹了如何通過日志恢復MSSQL數(shù)據(jù)的具體步驟,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 盤點SqlServer?分頁方式和拉姆達表達式分頁

    盤點SqlServer?分頁方式和拉姆達表達式分頁

    這篇文章主要介紹了SqlServer?5種分頁方式和拉姆達表達式分頁,進來看看吧,本文結合示例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2022-12-12
  • SQL Server學習筆記之事務、鎖定、阻塞、死鎖用法詳解

    SQL Server學習筆記之事務、鎖定、阻塞、死鎖用法詳解

    這篇文章主要介紹了SQL Server學習筆記之事務、鎖定、阻塞、死鎖用法,結合實例形式分析了SQL Server中事務、鎖定、阻塞、死鎖的概念、功能及相關使用技巧,需要的朋友可以參考下
    2017-07-07
  • MSSQL 監(jiān)控數(shù)據(jù)/日志文件增長實現(xiàn)方法

    MSSQL 監(jiān)控數(shù)據(jù)/日志文件增長實現(xiàn)方法

    今天就想實現(xiàn)這么一個功能,每天(頻率可以調整)去收集一下數(shù)據(jù)文件的信息,放到一個表里面,這樣方便我們分析數(shù)據(jù)文件的增長演變例程,甚至你可以將數(shù)據(jù)文件的增長幅度和業(yè)務變化關聯(lián)起來分析
    2013-08-08
  • 掌握SQL?Server實戰(zhàn)教程之SQL?Server的安裝指南

    掌握SQL?Server實戰(zhàn)教程之SQL?Server的安裝指南

    對于項目來說最重要的一環(huán)莫過于數(shù)據(jù)庫了,一個良好的數(shù)據(jù)庫能夠讓項目更加清晰、條理分明,下面這篇文章主要給大家介紹了關于掌握SQL?Server實戰(zhàn)教程之SQL?Server的安裝指南,需要的朋友可以參考下
    2023-04-04
  • 一文講懂SQL執(zhí)行順序

    一文講懂SQL執(zhí)行順序

    開發(fā)人員需要應用SQL語句來構建數(shù)據(jù)庫模型,測試人員需要用SQL語句來操作數(shù)據(jù)庫數(shù)據(jù),到底SQL語句的查詢執(zhí)行順序是怎樣的呢,本文就來介紹一下
    2023-09-09
  • SQL SERVER 開啟CDC 實操詳細

    SQL SERVER 開啟CDC 實操詳細

    這篇文章主要個代價介紹SQL SERVER CDC開啟實操詳細內容,文明芝麻官內容有詳細代碼及解說,需要的小伙伴可以參考一下
    2021-10-10
  • SQL Server中使用sp_password重置SA密碼實例

    SQL Server中使用sp_password重置SA密碼實例

    這篇文章主要介紹了SQL Server中使用sp_password重置SA密碼實例,一般在忘記SA密碼時的恢復手段,需要的朋友可以參考下
    2014-08-08

最新評論

乾安县| 岗巴县| 鄯善县| 如皋市| 汉寿县| 卢氏县| 哈巴河县| 育儿| 来宾市| 巴彦县| 营山县| 莱阳市| 凯里市| 乌兰察布市| 临泉县| 阿合奇县| 通山县| 泸定县| 英超| 阜新市| 磴口县| 土默特右旗| 噶尔县| 温泉县| 自治县| 呼图壁县| 新和县| 安宁市| 山阴县| 兰考县| 原阳县| 星座| 贺兰县| 寿光市| 峨山| 达日县| 井冈山市| 武城县| 察哈| 潢川县| 威远县|