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 错误编号

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