日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

SQL Server里那些我们应该知道的系统存储过程

發(fā)布時間:2024/9/27 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server里那些我们应该知道的系统存储过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SQL Server常見系統(tǒng)存儲過程

1 sp_who

功能及說明:

??? 當(dāng)前數(shù)據(jù)庫實例的用戶、會話、進(jìn)程信息。

??? 參數(shù)主要包括用戶(@loginame='xxxx')、會話狀態(tài)(僅活動的即ACTIVE)、回話ID三個參數(shù)里的一個。如果不加參數(shù)則返回該數(shù)據(jù)庫實例下的所有會話信息。

返回參數(shù):主要有會話ID、執(zhí)行計劃上下文ID、狀態(tài)、登錄名、主機名、阻塞進(jìn)程對應(yīng)的會話ID、數(shù)據(jù)庫名、命令(TSQL、SQL、數(shù)據(jù)庫內(nèi)部命令代號)、請求ID。

示例:

-- 1 不傳參數(shù)

sp_who

--EXEC sp_who 等價于上式

--2僅傳登錄名參數(shù)

--EXEC?sp_who?@loginame='sa';?

EXEC?sp_who?'sa';?--等價于上式

--3僅傳狀態(tài)參數(shù)

EXEC?sp_who?'active';?

--4僅傳spid參數(shù)

exec?sp_who??55

2 sp_helptext

功能及說明:返回用戶定義的規(guī)則、默認(rèn)值的定義、未加密的用戶自定義存儲過程(函數(shù))、觸發(fā)器、計算列、檢查(CHECK)約束、視圖、系統(tǒng)對象(系統(tǒng)存儲過程)的代碼文本定義。

示例:

--1查看存儲過程的代碼定義

sp_helptext?@objname?='usp_useradd_MS'

--2查看函數(shù)的代碼定義

sp_helptext?@objname?='fun_GetPage'

--3 查看計算列的定義

USE?AdventureWorks2019;??

GO??

sp_helptext?@objname?=?N'AdventureWorks2019.Sales.SalesOrderHeader',?@columnname?=?TotalDue?;??

GO

??

-- 4 查看系統(tǒng)存儲過程sp_who的代碼定義

sp_helptext?@objname?=?N'sp_who';??

3 sp_help

功能及說明:顯示指定數(shù)據(jù)庫對象里的詳細(xì)信息(對象類型、創(chuàng)建時間、字段類型、是否自增、文件組等信息)。

其它類似的系統(tǒng)存儲過程有:

sp_helptrigger(觸發(fā)器詳情)、sp_helpindex(索引詳情)、sp_helpserver(服務(wù)器詳情)、sp_helpstats(統(tǒng)計信息詳情)、

sp_helpsort(字符集排序詳情)、 sp_helpfilegroup(文件組詳情)、sp_helplanguage(語言詳情)、sp_helpfile(數(shù)據(jù)庫文件詳情)、sp_helpdb(數(shù)據(jù)庫詳情)等。

詳見使用結(jié)尾處示例代碼。

示例:

sp_help?'tb_user'

?

-- 2其它help類系統(tǒng)存儲過程

USE?AdventureWorks2019

GO

--查看指定表的觸發(fā)器信息

EXEC?sp_helptrigger?'Person.Person';?

--查看指定表的索引信息

EXEC?sp_helpindex?N'Sales.Customer';?

--查看數(shù)據(jù)庫所在實例的服務(wù)器信息?

EXEC?sp_helpserver?N'localhost';?

--查看指定表的統(tǒng)計信息

EXEC sp_createstats;?

GO?

EXEC sp_helpstats??

@objname = 'Sales.Customer',?

@results = 'ALL';

--查看當(dāng)前數(shù)據(jù)庫字符集排序

sp_helpsort;?

--查看數(shù)據(jù)庫文件組信息

sp_helpfilegroup?'PRIMARY'

--查看某國語言的格式信息(日期格式、周首日序號、月格式等)

sp_helplanguage?'Simplified?Chinese' ;

sp_helplanguage

--查看數(shù)據(jù)文件和日志的詳細(xì)信息。

sp_helpfile;?

--查看表對應(yīng)的約束信息(主鍵、外鍵、檢查約束、默認(rèn)值約束等)

EXEC?sp_helpconstraint?'Production.Product';?

--查看數(shù)據(jù)庫的信息(數(shù)據(jù)庫名、大小、所有者、創(chuàng)建時間、數(shù)據(jù)庫狀態(tài)、兼容級別)

EXEC sp_helpdb

4 sp_depends

功能及說明:

顯示數(shù)據(jù)庫對象的依賴信息,比如視圖或存儲過程里依賴的表或視圖或者反過來。

示例:

sp_depends?@objname?=?N'tb_user'

?

--查看觸發(fā)器里依賴的表、視圖等數(shù)據(jù)庫對象

USE?AdventureWorks2019

GO

EXEC?sp_depends?@objname?=?N'Production.iWorkOrder'?;?

5 sp_detach_db sp_attach_db

功能及說明:

sp_detach_db是對數(shù)據(jù)庫進(jìn)行分離(卸載),以下幾種情況不能分離:

1 數(shù)據(jù)庫正在用時

2 數(shù)據(jù)庫處理復(fù)制狀態(tài)

3 數(shù)據(jù)庫的快照已存在

4數(shù)據(jù)庫正在被鏡像

5 數(shù)據(jù)庫已經(jīng)被掛起

6 當(dāng)前數(shù)據(jù)庫是系統(tǒng)數(shù)據(jù)庫

示例:

USE master;?

ALTER DATABASE AdventureWorks2012?

SET SINGLE_USER;?

GO

EXEC sp_detach_db 'AdventureWorks2019', 'true';

2 與之對應(yīng)的是通過sp_attach_db命令完成數(shù)據(jù)的附加(裝載)

示例:

EXEC sp_attach_db @dbname = N'AdventureWorks2019',??

??? @filename1=N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2019_Data.mdf',??

??? @filename2=N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2019_log.ldf';

?

6 sp_spaceused

功能及說明:?查看當(dāng)前數(shù)據(jù)庫、數(shù)據(jù)庫對象的空間使用情況

示例:

sp_spaceused

sp_spaceused?'tb_user'

?

7 sp_renamedb

功能及說明:對某個數(shù)據(jù)庫重命名

示例:

USE?master;??

GO??

CREATE?DATABASE?Accounting;??

GO?

SELECT?*?FROM?sys.databases?WHERE?name?='Accounting'?

EXEC?sp_renamedb?N'Accounting',?N'Financial';??

GO??

SELECT?*?FROM?sys.databases?WHERE?name?=N'Financial'

8 sp_rename

功能及說明:重命名某個數(shù)據(jù)庫對象(表、字段、索引、約束、統(tǒng)計信息等)

示例:

--1重命名表名

USE AdventureWorks2019; ?

GO?

EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';?

GO?

--2重命名字段

USE AdventureWorks2019;?

GO?

EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';?

GO

--3重命名索引

USE AdventureWorks2019;?

GO?

EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';?

GO?

9 sp_executesql

功能及說明:執(zhí)行動態(tài)SQL。

示例

SET?@IntDeptno?=?30;??

SET?@SQLString?=?N'SELECT?@max_salOUT?=?max(sal)???

???FROM?employee?

???WHERE?deptno?=?@dno';??

SET?@ParmDefinition?=?N'@dno?TINYINT,?@max_salOUT?decimal(7,2)?OUTPUT';??

EXECUTE?sp_executesql?@SQLString,?@ParmDefinition,?@dno?=?@IntDeptno,?@max_salOUT=@max_sal?OUTPUT;??

SELECT?@max_sal;

上述代碼翻譯過來是:

????SELECT?max(sal)?FROM?employee

????WHERE?deptno=30

10 sp_configure

功能及說明:進(jìn)行系統(tǒng)配置。

示例:

?-- 啟用Ad Hoc Distributed Queries:

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfigure

--使用完成后,再關(guān)閉Ad Hoc Distributed Queries選項

exec sp_configure 'Ad Hoc Distributed Queries',0

reconfigure

exec sp_configure 'show advanced options',0

reconfigure

11 sp_adduser

功能及說明:給當(dāng)前數(shù)據(jù)庫加個用戶

參數(shù)形式為:

sp_adduser [ @loginame = ] 'login'??

??? [ , [ @name_in_db = ] 'user' ]??

??? [ , [ @grpname = ] 'role' ]?

示例:

-- 1 將登錄名是Vidur的用戶Vidur添加到組Recruiting內(nèi)

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'; ?

-- 2 增加一個和登錄名一樣的用戶Arvind

EXEC sp_adduser 'Arvind';?

12 sp_addlogin

功能及說明:創(chuàng)建一個可以連入SQL Server數(shù)據(jù)庫的登錄名。

參數(shù)形式為:

sp_addlogin [ @loginame = ] 'login'

[ , [ @passwd = ] 'password' ]

[ , [ @defdb = ] 'database' ]

[ , [ @deflanguage = ] 'language' ]

[ , [ @sid = ] sid ]

[ , [ @encryptopt = ] 'encryption_option' ]

?[;]

示例:

-- 創(chuàng)建一個登錄名并制定密碼和默認(rèn)所屬數(shù)據(jù)庫corporate。

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';?

GO

13 sp_password

功能及說明:修改SQL Server登錄名的密碼。

--1修改用戶John的密碼為新密碼,這里無需知道舊密碼

ALTER LOGIN John WITH PASSWORD = 'G368630s#2_36';?

GO

--2修改用戶John的密碼為新密碼,這里需輸入舊密碼

ALTER LOGIN John WITH PASSWORD = 'G368630s#2_36' OLD_PASSWORD = 'H3q1jhygd#2_23236'; GO

14 sp_droplogin sp_dropuser

功能及說明:刪除登錄名、用戶名。

示例:

-- 刪除登錄名John

EXEC sp_droplogin 'John';

GO

-- 刪除用戶名Albert

EXEC sp_dropuser 'Albert';

GO

15 sp_table_privileges

功能及說明:SQL Server查看表的權(quán)限。

示例:

EXEC?sp_table_privileges?'tb_user';?

16 sp_tables

功能及說明:SQL Server查看數(shù)據(jù)庫下的所有用戶下的表(含sys用戶)。

示例:

--1查看當(dāng)前數(shù)據(jù)庫下所有用戶下的表信息。

EXEC?sp_tables?

--2查看當(dāng)前數(shù)據(jù)庫下dbo模式下以emp開頭的表信息。

EXEC?sp_tables???

???@table_name?=?'emp%',??

???@table_owner?=?'dbo'

17 sp_stored_procedures

功能及說明:SQL Server查看當(dāng)前數(shù)據(jù)庫內(nèi)所有用戶下的存儲過程(含sys用戶)。

示例:

EXEC sp_stored_procedures

18 sp_columns

功能及說明:查看當(dāng)前數(shù)據(jù)庫內(nèi)指定表的字段信息 (含sys用戶)。

示例:

EXEC?sp_columns?'tb_user'

19 sp_databases

功能及說明:查看所有數(shù)據(jù)庫的信息(名稱、數(shù)據(jù)庫大小)。

示例:

EXEC?sp_databases

20 sp_column_privileges

功能及說明:查看當(dāng)前數(shù)據(jù)庫里查看指定表的字段權(quán)限(INSERTREFERENCES、SELECT、UPDATE)。

參數(shù)形式

sp_column_privileges [ @table_name = ] 'table_name'??

???? [ , [ @table_owner = ] 'table_owner' ]??

???? [ , [ @table_qualifier = ] 'table_qualifier' ]??

???? [ , [ @column_name = ] 'column' ]

示例:

USE?AdventureWorks2019;??

GO??

EXEC?sp_column_privileges?@table_name?=?'Employee'???

????,@table_owner?=?'HumanResources'??

????,@table_qualifier?=?'AdventureWorks2019'??

????,@column_name?=?'SalariedFlag';?

21 sp_MSforeachdb sp_MSforeachtable

sp_MSforeachd、sp_MSforeachtable是兩個未公開的系統(tǒng)存儲過程,前者用于遍歷所有數(shù)據(jù)庫,后者用于遍歷某個數(shù)據(jù)庫下所有表。

示例:

--1遍歷當(dāng)前數(shù)據(jù)庫里每個表執(zhí)行sp_spaceused

exec?sp_MSforeachtable?@command1="sp_spaceused?'?'"?

-- 2結(jié)合臨時表查看所有數(shù)據(jù)庫下的模式

CREATE TABLE #schemaTable(

?? dbname VARCHAR(100),

?? schemaname VARCHAR(100)

?)

?EXEC sp_MSforeachdb? @command1="print '?'",

?@command2="INSERT INTO #schemaTable SELECT '?',name schemas_name FROM sys.schemas"

SELECT * FROM #schemaTable

?

總結(jié)

以上是生活随笔為你收集整理的SQL Server里那些我们应该知道的系统存储过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。