儲存過程 儲存過程
儲存過程
as //此處 as 不可以省略不寫
begin //begin 和 end 是一對,不可以只寫其中一個,但可以都不寫
select S#,Sname,Sage,Ssex from student
end
go
@sname varchar(100)
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc '趙雷' //執行語句
上面是在外部給變數賦值,也可以在內部直接給變數設定預設值
create proc StuProc@sname varchar(100)='趙雷'
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc
也可以把變數的內容輸出,使用output
create proc StuProc@sname varchar(100),
@IsRight int output //傳出引數
as
if exists (select S#,Sname,Sage,Ssex from student where [email protected])
set @IsRight =1
else
set @IsRight=0
go
declare @IsRight int
exec StuProc '趙雷' , @IsRight output
select @IsRight
以上是全域性變數,下面來了解區域性變數
區域性變數也稱為內部變數。區域性變數是在函式內作定義說明的。其作用域僅限於函式內部,離開該函式後再使用這種變數是非法的。
區域性變數的定義:必須先用Declare命令定以後才可以使用,declare{@變數名 資料型別}
區域性變數的賦值方法:set{@變數名=表示式}或者select{@變數名=表示式}
區域性變數的顯示:select @變數名
as
declare @sname varchar(100)
set @sname='趙雷'
select S#,Sname,Sage,Ssex from student where [email protected]
go
exec StuProc
那如果是要把區域性變數的資料顯示出來怎麼辦呢?
create proc StuProcas
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go
exec StuProc
帶輸出引數儲存過程
if (object_id('proc_getStudentRecord', 'P') is not null)create proc StuProc
drop proc proc_getStudentRecord
go
create proc proc_getStudentRecord(
@id int, --預設輸入引數
@name varchar(20) out, --輸出引數
@age varchar(20) output--輸入輸出引數
)
as
select @name = name, @age = age from student where id = @id and sex = @age;
go
as //此處 as 不可以省略不寫
begin //begin 和 end 是一對,不可以只寫其中一個,但可以都不寫
select S#,Sname,Sage,Ssex from student
end
go create proc StuProc
@sname varchar(100)
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc '趙雷' //執行語句
上面是在外部給變數賦值,也可以在內部直接給變數設定預設值
create proc StuProc@sname varchar(100)='趙雷'
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc
也可以把變數的內容輸出,使用output
create proc StuProc@sname varchar(100),
@IsRight int output //傳出引數
as
if exists (select S#,Sname,Sage,Ssex from student where [email protected])
set @IsRight =1
else
set @IsRight=0
go
declare @IsRight int
exec StuProc '趙雷' , @IsRight output
select @IsRight
以上是全域性變數,下面來了解區域性變數
區域性變數也稱為內部變數。區域性變數是在函式內作定義說明的。其作用域僅限於函式內部,離開該函式後再使用這種變數是非法的。
區域性變數的定義:必須先用Declare命令定以後才可以使用,declare{@變數名 資料型別}
區域性變數的賦值方法:set{@變數名=表示式}或者select{@變數名=表示式}
區域性變數的顯示:select @變數名
as
declare @sname varchar(100)
set @sname='趙雷'
select S#,Sname,Sage,Ssex from student where [email protected]
go
exec StuProc
那如果是要把區域性變數的資料顯示出來怎麼辦呢?
create proc StuProcas
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go
exec StuProc
帶輸出引數儲存過程
if (object_id('proc_getStudentRecord', 'P') is not null)create proc StuProc
drop proc proc_getStudentRecord
go
create proc proc_getStudentRecord(
@id int, --預設輸入引數
@name varchar(20) out, --輸出引數
@age varchar(20) output--輸入輸出引數
)
as
select @name = name, @age = age from student where id = @id and sex = @age;
go
as //此處 as 不可以省略不寫
begin //begin 和 end 是一對,不可以只寫其中一個,但可以都不寫
select S#,Sname,Sage,Ssex from student
end
go create proc StuProc
@sname varchar(100)
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc '趙雷' //執行語句
上面是在外部給變數賦值,也可以在內部直接給變數設定預設值
create proc StuProc@sname varchar(100)='趙雷'
as
begin
select S#,Sname,Sage,Ssex from student where [email protected]
end
go
exec StuProc
也可以把變數的內容輸出,使用output
create proc StuProc@sname varchar(100),
@IsRight int output //傳出引數
as
if exists (select S#,Sname,Sage,Ssex from student where [email protected])
set @IsRight =1
else
set @IsRight=0
go
declare @IsRight int
exec StuProc '趙雷' , @IsRight output
select @IsRight
以上是全域性變數,下面來了解區域性變數
區域性變數也稱為內部變數。區域性變數是在函式內作定義說明的。其作用域僅限於函式內部,離開該函式後再使用這種變數是非法的。
區域性變數的定義:必須先用Declare命令定以後才可以使用,declare{@變數名 資料型別}
區域性變數的賦值方法:set{@變數名=表示式}或者select{@變數名=表示式}
區域性變數的顯示:select @變數名
as
declare @sname varchar(100)
set @sname='趙雷'
select S#,Sname,Sage,Ssex from student where [email protected]
go
exec StuProc
那如果是要把區域性變數的資料顯示出來怎麼辦呢?
create proc StuProcas
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go
exec StuProc
帶輸出引數儲存過程
if (object_id('proc_getStudentRecord', 'P') is not null)
drop proc proc_getStudentRecord
go
create proc proc_getStudentRecord(
@id int, --預設輸入引數
@name varchar(20) out, --輸出引數
@age varchar(20) output--輸入輸出引數
)
as
select @name = name, @age = age from student where id = @id and sex = @age;
go