SQLServer--TSQL--存儲過程語法

——–存儲過程

—-系統存儲過程
exec sp_databases —–查找數據庫信息
exec sp_tables —–查找表的信息
exec sp_columns
exec sp_helpINDEX mn_user —-查看錶mn_user的索引
exec sp_helpconstraint mn_user ——–查看錶 mn_user的約束
exec sp_stored_procedures —-查看當前數據庫的存儲過程列表
exec sp_helptext ‘sp_helptext’ —查看存儲過程sp_helptext的定義
exec sp_helpdb
exec sp_defaultdb
exec sp_renamedb
exec sp_rename
—-擴展存儲過程
—-xp_cmdshell
use master
go
—exec xp_cmdshell ‘md d:\Back’,NO_OUTPUT
if exists(select * from sysdatabases where name=’DBNote’)
drop database DBNote
go
CREATE DATABASE DBNote
ON PRIMARY
( NAME = ‘DBNote’,
FILENAME = ‘f:\DBNote.mdf’ ,
SIZE = 3072KB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1024KB
)
LOG ON
( NAME = ‘DBNote_log’,
FILENAME = ‘f:\DBNote_log.ldf’ ,
SIZE = 1024KB ,
MAXSIZE = 2048GB ,
FILEGROWTH = 10%)
GO
——user表
CREATE TABLE mn_user (
mn_user_id int primary key NOT NULL identity(10000,1) , — ‘用戶id’
mn_user_name varchar(100)NOT NULL ,—– ‘用戶名’
mn_user_password varchar(100)NOT NULL ,—– ‘密碼’
mn_user_token varchar(100)NOT NULL ,—- ‘令牌’
mn_user_desc text , ——- ‘說明’
)
–exec xp_cmdshell ‘dir d:\Back\’
–execute sp_configure

——–user表插入記錄
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘matos’,’admin’,’admin’ ,’會員’)
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘admin’,’admin’,’admin’ ,’會員’)
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘matx’,’root’,’manager’ ,’會員’)
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘[email protected]’,’123456’,’user’ ,’非會員’)
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘wx11055’,’qwertyuiop’,’user’ ,’非會員’)
INSERT INTO [DBNote].[dbo].mn_user
VALUES(‘limingwei’,’qwe123’,’user’ ,’非會員’)

—–自定義的存儲過程

—-創建不帶參數
if exists(select * from sysobjects where name=’Proc_GetNoteTitle’)
drop proc Proc_GetNoteTitle
go
create proc Proc_GetNoteTitle
as
select u.mn_user_name,n.mn_note_tile from mn_user u,mn_note n where u.mn_user_id=n.mn_user_id
go
exec Proc_GetNoteTitle
execute Proc_GetNoteTitle
—-創建帶參數
if exists(select * from sysobjects where name=’Proc_GetNoteTitle’)
drop proc Proc_GetNoteTitle
go
create proc Proc_GetNoteTitle @user_name varchar(20)
as
select u.mn_user_name,n.mn_note_tile from mn_user u,mn_note n where u.mn_user_id=n.mn_user_id and u.mn_user_name=@user_name
go
exec Proc_GetNoteTitle ‘matos’
—-創建參數有默認值的存儲過程
if exists(select * from sysobjects where name=’Proc_GetNoteTitle’)
drop proc Proc_GetNoteTitle
go
create proc Proc_GetNoteTitle
@user_name varchar(20),@cmark nvarchar OUTPUT —-output 定義當前參數爲輸出參數
as
print ‘打印初始值:’+@cmark
select u.mn_user_password from mn_user u where u.mn_user_name=@user_name
go

exec Proc_GetNoteTitle ‘matos’
—調用該存儲過程
declare @cmark nvarchar
set @cmark=’haha’
exec Proc_GetNoteTitle ‘matos’,@cmark OUTPUT
print ‘matos的密碼是:’+convert(nvarchar,@cmark)

————-RAISERROR錯誤編碼 自定義錯誤
if exists(select * from sysobjects where name=’Proc_Devide’)

drop proc Proc_Devide
go
create Proc Proc_Devide
@a int,
@b int
as
DECLARE @C INT
IF(@b=0)
BEGIN RAISERROR(‘零做爲除數錯誤!’,15,2)
return
end
set @c=@a/@b
go
exec Proc_Devide 10,0
select @@ERROR as 錯誤編號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章