sql存儲過程解密工具
從網上搜索SQL存儲過程解密,可以看到一大堆的資料,其內容都基本上都一致,這是先放上一篇:
解密存儲過程
本文將以此為基礎進行研究,雖能解密成功,但其中解密那一段究其原理是到底是什麼,一直也弄不明白,望了解內情的朋友告知。
先談問題:
網上得來的存儲過和經試驗存在幾個問題:
1、並沒有刪除原存儲重建,僅僅在控制台做了一個輸出,拷貝出來很不方便。
2、對於長度大點的加密數據會解密失敗。
帶著這兩個問題來改造此存儲過程。
先做准備工作,首先需要知道DAC這么個東西, 指的是資料庫專用管理員連接,為管理員提供的一種特殊的診斷連接。
知道了後得先打開它,以SQL2008為例:
㈡ SQLSERVER 2000下載
一步篩選:在 所有網站 華軍 天空 PCHOME 21CN 太平洋 eNet 驅動之家 其它網站 中的搜索結果
1. 多功能密碼破解軟體 4.5
目前本版本可以破解Access97/2000/xp密碼,Word/Excel97/2000/xp、SQLSERVER(本地和
www.onlinedown.net/soft/38220.htm
2. 有線電視多功能收費管理系統 7.69
本系統採用SQLserver2000資料庫(sqlserver增強版)或 Access2000數據
download.pchome.net/instry/library/16261.html
3. 隨心SQL2000安裝 2.5
自動安裝SQLServer資料庫伺服器;自動創建資料庫;自動安裝業務系統;自動修改配置文
www.onlinedown.net/soft/16514.htm
4. mssql2000通用抽獎程序 1.0
該程序為PB開發,僅支持SQLServer2000資料庫。運行環境為WINDOW2000XPNT98+MSSQL20
www.onlinedown.net/soft/25619.htm
5. 鍾鼎文協同辦公系統標准版 2.2
安裝前須知:1、在WINDOWS2000/2003系統安裝2、安裝SQLSERVER2000資料庫系統功能:知
www.onlinedown.net/soft/37944.htm
6. 華銳學校管理系統 1.41 build 1219
華銳學校管理系統採用客戶端/資料庫模式設計。資料庫採用SQLServer2000。保證了數據查
www.onlinedown.net/soft/22607.htm
7. sqlserver資料庫自動備份 2.0
一、系統要求:1、sqlserver伺服器或者客戶端程序。2、win98、win2000、winxp(win2003
www.onlinedown.net/soft/31759.htm
8. SQL密碼處理器 2.0
是一款針對SQLServer7.0或SQLServer2000的存儲過程、視圖、觸發器和函數進行加密和解
www.onlinedown.net/soft/30383.htm
9. WebICQ即時聊天工具 3.0
是一個Web聊天工具.安裝說明:1、安裝資料庫,本系統使用SQLServer2000,請打開SQLServ
www.onlinedown.net/soft/31476.htm
10. 鋁加工(鋁型材)生產管理信息系統 1.0.0.98
1、該軟體是我2003年2月底開始編寫的,軟體開發環境:Delphi6.0+Win2000+SQLServer200
www.onlinedown.net/soft/21566.htm
11. 易靈通物業管理軟體 1.0
易靈通物業管理系統採用SQLServer2000與Delphi6.0開發而成。系統穩定可靠,源於分部門
www.onlinedown.net/soft/18202.htm
12. 小雨--網路考試、監控及出題系統 6.7 Server版
小雨——網路考試系統採用國際流行經典組合VB6.0+SQLServer2000工具開發,全面支持互
www.onlinedown.net/soft/34514.htm
13. 流程管理信息系統FlowMIS 4.0
是一個基於SQLServer7/2000的工作流開發平台,基於這一產品可以開發辦公自動化、業務
www.onlinedown.net/soft/15180.htm
14. 物流配送系統-牛奶業務模塊 1.02
本程序屬於綠色程序,沒有附加的DLL文件,但因使用SQLServer2000為後台資料庫,所以必
www.onlinedown.net/soft/16274.htm
15. 迅宏液化氣站管理系統SQL版 4.21
迅宏液化氣站管理系統SQL版4.20,是針對SQLServer2000中文版開發的液化氣站專用管理軟
www.onlinedown.net/soft/1686.htm
16. SQL decrypt 2004 1.0
SQLserver2000資料庫加密腳本解密工具,便於你從加密的腳本中還原原始腳本,以分析程
www.onlinedown.net/soft/24799.htm
17. 上海A股SQL報盤資料庫工具 1.3
上海A股SQL報盤資料庫工具系統要求:WINNT4/WIN2000/WIN98+SQLSERVER6.5以上版本的客
www.onlinedown.net/soft/29977.htm
18. 世紀商龍商業管理系統 8.1
1.採用SQLserver2000資料庫,系統穩定可靠2.會員積分、儲值卡管理、捆綁銷售、時段打
www.onlinedown.net/soft/5192.htm
19. 易致簡訊防偽系統 2.0
系統採用sqlserver2000資料庫,隨機生成產品編碼,所生成編碼絕對不規律,安全性強,支
www.onlinedown.net/soft/26155.htm
20. mxc 1.0
可在WIN2000下單機或區域網上自動同時安裝多個SQLSERVER2000資料庫並自動與SQLSERVER2
www.onlinedown.net/soft/24823.htm
21. 錦航轎運車物流管理系統 1.0
使用軟體之前,請先安裝SQLSever2000,如果沒有SQLServer2000,請下載SQLServer2000桌面
www.onlinedown.net/soft/42459.htm
22. 晨明電器銷售標准網路版 4.0
安裝說明:>本軟體需要sqlserver2000資料庫支持,請先安裝sqlserver2000資料庫,然
www.onlinedown.net/soft/36023.htm
23. 商易CRM 普通版 3.06
B/S架構,只需安裝伺服器端,客戶端無需安裝。安裝前必須先安裝IIS、SQLserver2000和I
www.onlinedown.net/soft/34722.htm
24. 博狐桑那管理系統 1.1
博狐桑拿管理系統是一套專業、實用的的行業管理軟體,系統使用微軟sqlserver2000大型
www.onlinedown.net/soft/38974.htm
25. 逸飛餐飲管理系統 1.0
系統需要win2000以上操作系統。資料庫為SQLServer2000,混合驗證方式。對於局域應用,
www.onlinedown.net/soft/37190.htm
26. DevilDart飛鏢記分軟體 1.0.2.2
本軟體是綠色免安裝軟體,由於是基於SQLserver資料庫的應用,所以必須先安裝MSDE2000
www.onlinedown.net/soft/45666.htm
27. JSP簡單留言本(SQLserver2000版)
down.chinaz.com/S/7114.asp
28. php與SQLServer2000架構WindowsWeb資料庫實務
www.syku.net/down/soft/5511.htm
29. SQLServer2000菜鳥進階教程
down.htcnc.net/Software/Catalog29/1379.html
30. PHP與SQLServer2000架構WindowsWeb資料庫實務
www.600it.com/soft/6254.htm
31. SQLServer2000 Decryption V1.0
對SQLServer中加密的procere 和 view解密
download.enet.com.cn/html/030212005063001.html
http://www.soft8.net/soft8.php?page=2&word=SQLSERVER+2000&site=all&by=js&num=31
㈢ sql server裡面的內容加密了,用什麼方法可以解密
應該是程序寫入資料庫前加密的,要解密的話,先要查一下是用什麼方式加密的,有沒有解決程序。
如md5是沒有解密程序的。
㈣ SQL server 2008中有個觸發器被加密,怎麼破解觸發器
J老闆寫的解密存儲過程的代碼,把其中的procere 通通替換成 trigger,然後試試看
記得要備份
------------------------sql2000大於40000的-----------------
原作:j9988 號:J老師
create PROCEDURE sp_decrypt_sp (@objectName varchar(50))
AS
begin
declare @objectname1 varchar(100)
declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int , @t bigint
declare @m int,@n int,@q int
set @m=(SELECT max(colid) FROM syscomments WHERE id = object_id(@objectName))
set @n=1
--get encrypted data
create table #temp(colid int,ctext varbinary(8000))
insert #temp SELECT colid,ctext FROM syscomments WHERE id = object_id(@objectName)
set @sql1= 'ALTER PROCEDURE '+ @objectName + ' WITH ENCRYPTION AS '
--set @sql1= 'ALTER PROCEDURE '+ @objectName + ' WITH ENCRYPTION AS '
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE( '- ',4000-@q)
select @sql2=REPLICATE( '- ',4000),@sql3=REPLICATE( '- ',4000),@sql4=REPLICATE( '- ',4000),@sql5=REPLICATE( '- ',4000),@sql6=REPLICATE( '- ',4000),@sql7=REPLICATE( '- ',4000),@sql8=REPLICATE( '- ',4000),@sql9=REPLICATE( '- ',4000),@sql10=REPLICATE( '- ',4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
while @n <=@m
begin
SET @OrigSpText1=(SELECT ctext FROM #temp WHERE colid=@n)
set @objectname1=@objectname+ '_t '
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n)
if @n=1
begin
SET @OrigSpText2= 'CREATE PROCEDURE '+ @objectName + ' WITH ENCRYPTION AS '--
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE( '- ',@q)
end
else
begin
SET @OrigSpText2=REPLICATE( '- ', 4000)
end
--start counter
SET @i=1
--fill temporary variable
SET @resultsp = replicate(N 'A ', (datalength(@OrigSpText1) / 2))
--loop
WHILE @i <=datalength(@OrigSpText1)/2
BEGIN
--reverse encryption (XOR original+bogus+bogus encrypted)
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
--drop original SP
--EXECUTE ( 'drop PROCEDURE '+ @objectName)
--remove encryption
--preserve case
SET @resultsp=REPLACE((@resultsp), 'WITH ENCRYPTION ', ' ')
SET @resultsp=REPLACE((@resultsp), 'With Encryption ', ' ')
SET @resultsp=REPLACE((@resultsp), 'with encryption ', ' ')
IF CHARINDEX( 'WITH ENCRYPTION ',UPPER(@resultsp) )> 0
SET @resultsp=REPLACE(UPPER(@resultsp), 'WITH ENCRYPTION ', ' ')
--replace Stored procere without enryption
print @resultsp
--execute( @resultsp)
set @n=@n+1
end
drop table #temp
end
GO
適合40000字元。
每次4000 print出來,自已貼。
切記:我見過的解過程都是對原過程進行破壞。破解前一定要備份!!!!
超過40000的,自已加SQL(我上面用SQL.SQL2--SQL10)
超長的可加SQL11--sql20........
祝你好運!
另:還有個工具,以前用過收藏的,不知道2008管用不,地址如下:
㈤ sql server 2008中存儲過程怎麼解密
SQLServer2005里使用with encryption選項創建的存儲過程仍然和sqlserver2000里一樣,都是使用XOR進行了的加密。和2000不一樣的是,在2005的系統表syscomments里已經查不到加密過的密文了。要查密文必須使用DAC(專用管理員連接)連接到資料庫後,在系統表 sys.sysobjvalues查詢,該表的列imageval存儲了相應的密文。具體可以使用下面的查詢:
SELECT imageval FROM sys.sysobjvalues WHERE objid = object_id(@procere) AND
valclass = 1 AND subobjid = 1
針對SQL Server 2005的解密存儲過程
create PROCEDURE [dbo].[sp__windbi$decrypt]
(@procere sysname = NULL, @revfl int = 1)
AS
/*
王成輝翻譯整理,轉貼請註明出自微軟BI開拓者www.windbi.com
目前這個存儲過程只能解密存儲過程,至於解密函數、觸發器、視圖的存儲過程本網站會進一步關注,調用形式為:
exec dbo.sp__windbi$decrypt @procere,0
如果第二個參數使用1的話,會給出該存儲過程的一些提示。
--版本2.0
*/
SET NOCOUNT ON
IF @revfl = 1
BEGIN
PRINT '警告:該存儲過程會刪除並重建原始的存儲過程。'
PRINT ' 在運行該存儲過程之前確保你的資料庫有一個備份。'
PRINT ' 該存儲過程通常應該運行在產品環境的一個備份的非產品環境下。'
PRINT ' 為了運行這個存儲過程,將參數@refl的值更改為0。'
RETURN 0
END
DECLARE @intProcSpace bigint, @t bigint, @maxColID smallint,@intEncrypted
tinyint,@procNameLength int
select @maxColID = max(subobjid),@intEncrypted = imageval FROM
sys.sysobjvalues WHERE objid = object_id(@procere)
GROUP BY imageval
--select @maxColID as 'Rows in sys.sysobjvalues'
select @procNameLength = datalength(@procere) + 29
DECLARE @real_01 nvarchar(max)
DECLARE @fake_01 nvarchar(max)
DECLARE @fake_encrypt_01 nvarchar(max)
DECLARE @real_decrypt_01 nvarchar(max),@real_decrypt_01a nvarchar(max)
declare @objtype varchar(2),@ParentName nvarchar(max)
select @real_decrypt_01a = ''
--提取對象的類型如是存儲過程還是函數,如果是觸發器,還要得到其父對象的名稱
select @objtype=type,@parentname=object_name(parent_object_id)
from sys.objects where [object_id]=object_id(@procere)
-- 從sys.sysobjvalues里提出加密的imageval記錄
SET @real_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid =
object_id(@procere) and valclass = 1 order by subobjid)
--創建一個臨時表
create table #output ( [ident] [int] IDENTITY (1, 1) NOT NULL ,
[real_decrypt] NVARCHAR(MAX) )
--開始一個事務,稍後回滾
BEGIN TRAN
--更改原始的存儲過程,用短橫線替換
if @objtype='P'
SET @fake_01='ALTER PROCEDURE '+ @procere +' WITH ENCRYPTION AS
'+REPLICATE('-', 40003 - @procNameLength)
else if @objtype='FN'
SET @fake_01='ALTER FUNCTION '+ @procere +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/ END'
else if @objtype='V'
SET @fake_01='ALTER view '+ @procere +' WITH ENCRYPTION AS select 1 as col
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='TR'
SET @fake_01='ALTER trigger '+ @procere +' ON '+@parentname+' WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10)
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/'
EXECUTE (@fake_01)
--從sys.sysobjvalues里提出加密的假的
SET @fake_encrypt_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid =
object_id(@procere) and valclass = 1 order by subobjid )
if @objtype='P'
SET @fake_01='Create PROCEDURE '+ @procere +' WITH ENCRYPTION AS
'+REPLICATE('-', 40003 - @procNameLength)
else if @objtype='FN'
SET @fake_01='CREATE FUNCTION '+ @procere +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/ END'
else if @objtype='V'
SET @fake_01='Create view '+ @procere +' WITH ENCRYPTION AS select 1 as col
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='TR'
SET @fake_01='Create trigger '+ @procere +' ON '+@parentname+' WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10)
/*'+REPLICATE('*', datalength(@real_01) /2 - @procNameLength)+'*/'
--開始計數
SET @intProcSpace=1
--使用字元填充臨時變數
SET @real_decrypt_01 = replicate(N'A', (datalength(@real_01) /2 ))
--循環設置每一個變數,創建真正的變數
--每次一個位元組
SET @intProcSpace=1
--如有必要,遍歷每個@real_xx變數並解密
WHILE @intProcSpace<=(datalength(@real_01)/2)
BEGIN
--真的和假的和加密的假的進行異或處理
SET @real_decrypt_01 = stuff(@real_decrypt_01, @intProcSpace, 1,
NCHAR(UNICODE(substring(@real_01, @intProcSpace, 1)) ^
(UNICODE(substring(@fake_01, @intProcSpace, 1)) ^
UNICODE(substring(@fake_encrypt_01, @intProcSpace, 1)))))
SET @intProcSpace=@intProcSpace+1
END
--通過sp_helptext邏輯向表#output里插入變數
insert #output (real_decrypt) select @real_decrypt_01
-- select real_decrypt AS '#output chek' from #output --測試
-- -------------------------------------
--開始從sp_helptext提取
-- -------------------------------------
declare @dbname sysname
,@BlankSpaceAdded int
,@BasePos int
,@CurrentPos int
,@TextLength int
,@LineId int
,@AddOnLen int
,@LFCR int --回車換行的長度
,@DefinedLength int
,@SyscomText nvarchar(4000)
,@Line nvarchar(255)
Select @DefinedLength = 255
SELECT @BlankSpaceAdded = 0 --跟蹤行結束的空格。注意Len函數忽略了多餘的空格
CREATE TABLE #CommentText
(LineId int
,Text nvarchar(255) collate database_default)
--使用#output代替sys.sysobjvalues
DECLARE ms_crs_syscom CURSOR LOCAL
FOR SELECT real_decrypt from #output
ORDER BY ident
FOR READ ONLY
--獲取文本
SELECT @LFCR = 2
SELECT @LineId = 1
OPEN ms_crs_syscom
FETCH NEXT FROM ms_crs_syscom into @SyscomText
WHILE @@fetch_status >= 0
BEGIN
SELECT @BasePos = 1
SELECT @CurrentPos = 1
SELECT @TextLength = LEN(@SyscomText)
WHILE @CurrentPos != 0
BEGIN
--通過回車查找行的結束
SELECT @CurrentPos = CHARINDEX(char(13)+char(10), @SyscomText,
@BasePos)
--如果找到回車
IF @CurrentPos != 0
BEGIN
--如果@Lines的長度的新值比設置的大就插入@Lines目前的內容並繼續
While (isnull(LEN(@Line),0) + @BlankSpaceAdded +
@CurrentPos-@BasePos + @LFCR) > @DefinedLength
BEGIN
SELECT @AddOnLen = @DefinedLength-(isnull(LEN(@Line),0) +
@BlankSpaceAdded)
INSERT #CommentText VALUES
( @LineId,
isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,
@BasePos, @AddOnLen), N''))
SELECT @Line = NULL, @LineId = @LineId + 1,
@BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded = 0
END
SELECT @Line = isnull(@Line, N'') +
isnull(SUBSTRING(@SyscomText, @BasePos, @CurrentPos-@BasePos + @LFCR), N'')
SELECT @BasePos = @CurrentPos+2
INSERT #CommentText VALUES( @LineId, @Line )
SELECT @LineId = @LineId + 1
SELECT @Line = NULL
END
ELSE
--如果回車沒找到
BEGIN
IF @BasePos <= @TextLength
BEGIN
--如果@Lines長度的新值大於定義的長度
While (isnull(LEN(@Line),0) + @BlankSpaceAdded +
@TextLength-@BasePos+1 ) > @DefinedLength
BEGIN
SELECT @AddOnLen = @DefinedLength -
(isnull(LEN(@Line),0) + @BlankSpaceAdded)
INSERT #CommentText VALUES
( @LineId,
isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,
@BasePos, @AddOnLen), N''))
SELECT @Line = NULL, @LineId = @LineId + 1,
@BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded =
0
END
SELECT @Line = isnull(@Line, N'') +
isnull(SUBSTRING(@SyscomText, @BasePos, @TextLength-@BasePos+1 ), N'')
if LEN(@Line) < @DefinedLength and charindex(' ',
@SyscomText, @TextLength+1 ) > 0
BEGIN
SELECT @Line = @Line + ' ', @BlankSpaceAdded = 1
END
END
END
END
FETCH NEXT FROM ms_crs_syscom into @SyscomText
END
IF @Line is NOT NULL
INSERT #CommentText VALUES( @LineId, @Line )
select Text from #CommentText order by LineId
CLOSE ms_crs_syscom
DEALLOCATE ms_crs_syscom
DROP TABLE #CommentText
-- -------------------------------------
--結束從sp_helptext提取
-- -------------------------------------
--刪除用短橫線創建的存儲過程並重建原始的存儲過程
ROLLBACK TRAN
DROP TABLE #output
㈥ 尋求高手解開sql語句
SQLServer資料庫管理的常用SQL語句
1. 查看資料庫的版本
select @@version
2. 查看資料庫所在機器操作系統參數
exec master..xp_msver
3. 查看資料庫啟動的參數
sp_configure
4. 查看資料庫啟動時間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看資料庫伺服器名和實例名
print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
5. 查看所有資料庫名稱及大小
sp_helpdb
重命名資料庫用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有資料庫用戶登錄信息
sp_helplogins
查看所有資料庫用戶所屬的角色信息
sp_helpsrvrolemember
修復遷移伺服器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程
更改某個數據對象的用戶屬主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意: 更改對象名的任一部分都可能破壞腳本和存儲過程。
把一台伺服器上的資料庫用戶登錄信息備份出來可以用add_login_to_aserver腳本
7. 查看鏈接伺服器
sp_helplinkedsrvlogin
查看遠端資料庫用戶登錄信息
sp_helpremotelogin
8.查看某資料庫下某個數據對象的大小
sp_spaceused @objname
還可以用sp_toptables過程看最大的N(默認為50)個表
查看某資料庫下某個數據對象的索引信息
sp_helpindex @objname
還可以用SP_NChelpindex過程查看更詳細的索引情況
SP_NChelpindex @objname
clustered索引是把記錄按物理順序排列的,索引占的空間比較少。
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。
查看某資料庫下某個數據對象的的約束信息
sp_helpconstraint @objname
9.查看資料庫里所有的存儲過程和函數
use @database_name
sp_stored_proceres
查看存儲過程和函數的源代碼
sp_helptext '@procere_name'
查看包含某個字元串@str的數據對象名稱
select distinct object_name(id) from syscomments where text like '%@str%'
創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數
解密加密過的存儲過程和函數可以用sp_decrypt過程
10.查看資料庫里用戶和進程的信息
sp_who
查看SQL Server資料庫里的活動用戶和進程的信息
sp_who 'active'
查看SQL Server資料庫里的鎖的情況
sp_lock
進程號1--50是SQL Server系統內部用的,進程號大於50的才是用戶的連接進程.
spid是進程編號,dbid是資料庫編號,objid是數據對象編號
查看進程正在執行的SQL語句
dbcc inputbuffer ()
推薦大家用經過改進後的sp_who3過程可以直接看到進程運行的SQL語句
sp_who3
檢查死鎖用sp_who_lock過程
sp_who_lock
11.收縮資料庫日誌文件的方法
收縮簡單恢復模式資料庫日誌,收縮後@database_name_log的大小單位為M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 語句的方法:
set statistics time {on | off}
set statistics io {on | off}
圖形方式顯示查詢執行計劃
在查詢分析器->查詢->顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形
文本方式顯示查詢執行計劃
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
13.出現不一致錯誤時,NT事件查看器里出3624號錯誤,修復資料庫的方法
先注釋掉應用程序里引用的出現不一致性錯誤的表,然後在備份或其它機器上先恢復然後做修復操作
alter database [@error_database_name] set single_user
修復出現不一致錯誤的表
dbcc checktable('@error_table_name',repair_allow_data_loss)
或者可惜選擇修復出現不一致錯誤的小型資料庫名
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3個參數:
repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,
以及刪除已損壞的文本對象,這些修復可能會導致一些數據丟失。
修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。
如果回滾修復,則資料庫仍會含有錯誤,應該從備份進行恢復。
如果由於所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決於該修復的修復。
修復完成後,請備份資料庫。
repair_fast 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。
這些修復可以很快完成,並且不會有丟失數據的危險。
repair_rebuild 執行由 repair_fast 完成的所有修復,包括需要較長時間的修復(如重建索引)。
執行這些修復時不會有丟失數據的危險。
㈦ 如何破解SQL2008的存儲過程的存儲過程
第一步:點擊資料庫下的「可編程性」,選擇「存儲過程」,點擊滑鼠右鍵,選擇「新建存儲過程」
第二步:在create PROCEDURE 後 輸入存儲過程的名字,緊跟著的就是定義存儲過程的參數,接下來就可以去編寫自己所需要組裝的存儲過程語句了
第三步: 編譯存儲過程,在工具欄上按下執行按鈕,如果沒有錯誤,就編寫成功了。
第四步:調用:在sqlserver的語句查詢框中,輸入exec 存儲過程名 參數,執行就可以了。
基本語法格式如下:中括弧帶的是可選項
create proc | procere pro_name
[{@參數數據類型} [=默認值] [output],
{@參數數據類型} [=默認值] [output],
....
]
as
begin
SQL_statements
--業務處理
end
㈧ 如何查看SBO 加密的存儲過程
直接的話可以在SQL Server Profile中追蹤查看執行的存儲過程,另外有軟體,比如SQLDecryptor,也可以做相同的事情,甚至有SQL代碼來查看的。
㈨ sql server 2008,如何查看存儲過程裡面的內容
1 打開MicrosoftSQL Server資料庫管理工具,選擇SQL Server身份驗證,輸入登錄名和用戶密碼,點擊連接按鈕。
㈩ changed-sp是什麼
changed-sp是一種用於修改SQL Server存儲過程的工具。它可以幫助用戶修改存儲過程的定義,而無需重新創建存儲過程。