您的位置:首页 > 数据库 > SQL

How to Use Temporary Variable

2016-12-02 13:00 281 查看
Some time, we need some variable to transfer number, date or even table.  

For accomplish tasks like that , I will introduce some build-in function of sql server in this instruction. 

 

Script: 

 

 

----------begin------------ 

 

----------part 1------------ 

declare @first_input table(lastfirst varchar(50), 

student_number int) 

insert @first_input  

output inserted.* 

select lastfirst,student_number from
students 

 

----------part 2------------ 

declare @second_edit table(student_name varchar(50), 

student_number_bef int, 

student_number_aft int) 

update @first_input  

set student_number=round(STUDENTS.student_number/10,0) 

output 

STUDENTS.LASTFIRST, 

DELETED.student_number AS BEF, 

inserted.student_number AS AFT 

into @second_edit 

FROM @first_input F,STUDENTS  

WHERE f.student_number=STUDENTS.STUDENT_NUMBER 

select * from @second_edit 

 

----------part 3------------ 

declare @third_backup table(student_name varchar(50), 

student_number_bef int, 

student_number_aft int, 

delete_time datetime) 

delete @second_edit  

output  

deleted.*,GETDATE() 

into @third_backup 

from @second_edit 

select * into #ICTbackup from
@third_backup 

select * from #ICTbackup 

Go 

------------end------------- 

There are 3 parts in this script(Please don’t apart them, they are ONE) 

 

Part 1: grab some data into a table-type variable and print them out. 

 

Part 2: modify these data and print them out. 

 

Part 3: delete all we have in part 1 and 2 then move them into a temporary table.

Tips: 

Q: What's the diffrience between table-type variable and temporary table? 

A: Let's put this in fairy tale. 

Table-type variable just like the 'stupid duck' in Grimm's fairytale. 

That duck only lives in a specific chapter, when you move into another story and you try to mention 'The Duck', it turns out no one knows 'The Duck'. 

 

As for temporary
table, it's like 'The little prince'. 

He is  a role lives through the whole book! In whichever page you say, 'the little prince', we all know who he is!  

 

*BUT remember, all they two only lives in one book, when you jump into another book, they disappeared. (It means all they two are temporary, Table-type
variable will disappear when you start a new script;  Temporary
table will disappear when you reconnect to database.) 

*Try This: 

Q: What is 'Go'? 

Please try below script and see what happen. 

 

Script: 

 

----------begin------------ 

 

----------part 1------------ 

declare @first_input table(lastfirst varchar(50), 

student_number int) 

insert @first_input  

output inserted.* 

select lastfirst,student_number from
students 

Go –-be careful and try to remove this-- 

----------part 2------------ 

declare @second_edit table(student_name varchar(50), 

student_number_bef int, 

student_number_aft int) 

update @first_input  

set student_number=round(STUDENTS.student_number/10,0) 

output 

STUDENTS.LASTFIRST, 

DELETED.student_number AS BEF, 

inserted.student_number AS AFT 

into @second_edit 

FROM @first_input F,STUDENTS  

WHERE f.student_number=STUDENTS.STUDENT_NUMBER 

select * from @second_edit 

GO –-be careful and try to remove this-- 

----------part 3------------ 

declare @third_backup table(student_name varchar(50), 

student_number_bef int, 

student_number_aft int, 

delete_time datetime) 

delete @second_edit  

output  

deleted.*,GETDATE() 

into @third_backup 

from @second_edit 

select * into #ICTbackup from
@third_backup 

select * from #ICTbackup 

Go –be careful-- 

------------end------------- 

Drop table if you want to try this again! 

USE: 

 

Drop table #ICTbackup 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息