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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
                       存儲過程存儲過程分為系統存儲過程和自定義存儲過程存儲過程通過將處理數據的程序從客戶端應用程序移動到服務器,存儲過程是放在服務器上的,通過客戶端下達指令調用存儲過程的時候,這個過程是在服務器上發生的,自然就不會占用網絡的帶寬就會降低網絡流量。存儲過程就是一組為了完成特定功能的T-SQL語句。就是一組語句隨時隨地拿出來調用。經過編譯后,它存儲在SQLserver服務器端的數據庫中,換句話說這個T-SQL語句不是普通的T-SQL語句,是經過編譯的,存儲在服務器中,它是有名稱的,根據名稱調用存儲過程,并進行相應的操作,與函數有些相似,但不同。利用存儲過程可以加速T-SQL語句的執行。系統存儲過程在SQLserver安裝之后就以及存儲在SQLserver的master數據庫中(master數據庫里面存儲了所有的系統存儲過程。在新建數據庫的時候它們自動的將這些存儲過程賦值到新的數據庫中)也就是說創建一個新的數據庫存儲過程自然就存在了。所有的系統存儲過程自然就存在了。系統存儲過程是以sp開頭的。存儲過程通常命名                             (附加數據庫需要先進行分離,分離后才可繼續附加,或者附加的數據庫是系統所沒有的。)sp_attach_db 附加數據庫                      exec sp_attach_db @dbname='newlts',@filename1='D:\具體存儲路徑' \\分離數據庫''括號里為數據庫名稱           sp_detach_db 分離數據庫                      exec sp_detach_db 'newlts' \\分離數據庫''括號里為數據庫名稱       exec sp_renamedb test,test1 \\給數據庫進行改名,test改成test1sp_rename    給對象改名                      存儲過程是可以有參數的,也可以有返回值的,但和函數并不相同,函數的返回值可以直接調用和賦值。存儲過程的返回值只能指明執行是否成功,并且不像函數那樣可以直接調用sp_help  顯示數據庫相關數據                  存儲過程和函數的概念,過程可以執行操作,但沒有返回值。               !!!!!!!存儲過程的返回值就是指明執行是否成功。sp_changedbowner 改變數據庫所有者                        存儲過程的優點:                  在SQLserver中T-sql可以判做是一種主編程語言,利用它來編程有兩種方式:一、在本地存儲T-sql程序并創建應用程序,向SQLserver發送命令。 Exec sp_changedbowner '所有者'                                          二、編寫存儲過程,并把它存儲在SQLserver的服務器上,接下來來創建應用程序,來調用存儲過程對結果進行處理。sp_password 改密碼 存儲過程的四大優點:一、提高應用程序的通用性和可移植性,存儲過程創建后可以在程序中被多次調用,類似于函數一樣。應用程序是調用的存儲過程,Exec sp_password 舊密碼 新密碼 登錄名                                            如果改相應的程序功能,存儲過程可以隨時修改,應用程序不用改。                                    二、可以更有效的管理用戶的權限,有些用戶可以調用存儲過程,可以執行某些操作,某些用戶不能執行某些操作,則不能調用存儲過程
use LtsDatabase                              \\獲得數據庫使用權限 系統管理員可以通過對執行某一操作的這樣的存儲過程它的調用權限進行限制,從而限制相應的數據哪些用戶可以訪問,哪些用戶不可以訪問,
exec sp_raname '網站職員表','新網站職員表'   \\為表進行改名。     這樣一來就實現了對相應數據訪問的控制。避免非授權用戶進行操作三、可以提高T-SQL語句的速度,存儲過程本身是被編譯過的,如果某一操作包含了大量的T-SQL代碼,而且要被執行多次,這個時候就比較適合存儲過程因為存儲過程是放在服務器端的,使用存儲過程比直接調用T-SQL語句要快得多,因為是被編譯過的四、減輕網絡負擔、存儲過程的創建(自定義存儲過程的創建)過程名稱              創建存儲過程的格式 !!!(函數的返回值可以被調用,存儲過程的返回值不能被調用)
create proc newProc \\創建存儲過程        execute newProc \\調用存儲過程    Create Proc 過程名
as                                                                          @Parameter  參數類型         (普通參數)\\給存儲過程本身使用的,普通參數可以直接傳遞給存儲過程,存儲過程調用它來完成。                         
begin                                                                       @Parameter  參數類型 output  (輸出參數)\\利用存儲過程給某些變量賦值,當然不能直接用他的返回值,
print 'hello word!'\\輸出hello word!                                       as                                       這個時候就可以用到輸出參數。
end                                                                         Begin              !!!!!!! 輸出參數 可以將一個變量傳遞給它,存儲過程作為輸出參數,存儲過程執行完成之后,會將結果直接賦值                      .............              給這個變量,對這個變量重新賦值,但是這里有一點需要注意的是通過輸出參數完成的賦值,而并非通過存儲過程End                        的返回值來完成的賦值,這是一個和函數根本的不同普通參數的使用create proc newproc2         \\創建存儲過程名稱
@testString1 varchar(60),   !!!!!傳遞兩個參數之間必須用逗號隔開,否則會有錯誤
@testString2 varchar(60)    \\調用的時候可以給它傳遞的兩個參數,test1和test2,這兩個參數在執行存儲過程的時候
as                            會輸出下方兩個print后面的值。
begin
print '第一個參數為:'+@testString1,     !!!!!傳遞兩個參數之間必須用逗號隔開,否則會有錯誤
print '第二個參數為:'+@testString2
endexec newproc2 '大家好','這是存儲過程'    \\存儲過程的調用,和傳遞參數。輸出參數的使用\\帶有輸出參數的存儲過程
create proc newproc8   \\創建存儲過程并命名
@testVarA int,         \\定義類型(普通參數)
@testVarB int,         
@testVarSum int Output \\定義類型(輸出參數)   \\輸出參數類似于函數的返回值,函數的返回值可以直接作為一個被調用的值給某一個變量賦值。
as                                                
begin
set @testVarSum=@testVarA+@testVarB \\條件
end調用存儲過程declare @testA int       \\定義一個變量A
set @testA=60            \\賦值
print @testA             \\輸出變量A
execute newproc8 600,800,@testA output  \\調用此存儲過程,并傳遞三個參數,將600,800,賦值給@testVarA和@testVarB,A+B的值賦給@testVarSum然后@testVarSum再賦值給@testA output
print @testA   \\輸出                          @testA output,這里的output是將@testA設定為輸出參數                                     重新賦值,重新賦值之后就變成1400了60   \\第一個輸出的結果自定義的變量@testA
1400 \\第二個結果是如何在存儲過程當中通過傳遞進來的參數進行查找符合條件的記錄
根據輸入進來的數據查詢符合條件的記錄create proc newProcA  \\創建存儲過程并命名
@testNameA varchar(30) \\定義傳遞進來的參數的數據類型
as
begin
select * from 網站職員表 where 姓名=@testNameA \\從網站職員表中查找符合條件的記錄,
end                                              (在@testName中輸入的參數必須和在網站職員表中的姓名字段相等(存在))修改存儲過程存儲修改有兩種方法,一種是純T-SQL語句修改,另一種是視圖修改。把所有的記錄都要參與查詢,
但并不是把它們都顯示出來把網站職員表中所有記錄工資最高的員工,把它的工資顯示出來就可以,
并且作為輸出參數進行輸出!!!通過視圖修改存儲過程USE [LtsDatabase試驗]
GO
/****** Object:  StoredProcedure [dbo].[newProcA]    Script Date: 06/03/2019 11:31:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[newProcA]
@testNameA varchar(30)     \\\\@testMoney money output 
as     ( 修改前 )                  ( 修改后  )
begin
select * from 網站職員表 where 姓名=@testNameA  \\\\select @testMoney=MAX(工資) from 網站職員表
end           ( 修改前  )                                    ( 修改后 )調用此存儲過程declare @MaxMoney money  \\定義一個變量名稱為@MaxMoney,其變量類型為貨幣型moneyexecute newProcA @MaxMoney output \\調用存儲過程名稱為newProcA將@MaxMoney作為輸出參數傳遞給@testMoneyselect @MaxMoney as 工資最高的員工工資 \\用select對變量進行輸出通過T-SQL語句修改存儲過程(重新寫一個新的存儲過程)                            Create Proc \\創建存儲過程
alter proc newProcA   \\修改存儲過程,名字為newProcA                              Alter  Proc \\修改存儲過程
@testNameA varchar(30)                                                           Drop   Proc \\刪除存儲過程
as
begin
select * from 網站職員表 where 姓名=@testNameA
end重命名存儲過程                                                  刪除存儲過程                  T-SQL語句刪除          刪除多個過程sp_rename newProcA,newProc  \\利用sp_rename進行重命名              右鍵存儲過程直接刪除             drop Proc NewProc   drop Proc NewProc,NewProc2,NewProc3(命名前)(命名后)創建一個存儲過程,傳遞給它兩個參數它可以比較兩個參數的大小。Create Proc ProcSimple1  \\創建一個存儲過程,名字為ProcSimple1@testVar1 int,           \\傳遞兩個參數@testVar2 int            \\傳遞兩個參數,這兩個參數是在調用存儲過程的時候,向它傳遞的,并非輸出參數,只是兩個普通參數asbeginif @testVar1>@testVar2  \\比較兩個參數的大小print cast(@testVar1 as varchar(10))+'大于'+cast(@testVar2 as varchar(20)) \\將變量@testVar1和變量@testVar2的int類型轉換為varchar類型。轉換
else if @testVar1<@testVar2 \\比較兩個參數的大小print cast(@testVar1 as varchar(10))+'小于'+cast(@testVar2 as varchar(10))elseprint cast(@testVar1 as varchar(10))+'等于'+cast(@testVar2 as varchar(10))end調用存儲過程execute ProcSimple1 100,300 \\調用存儲過程,并比較出兩個數值的大小調用存儲過程declare @testInt1 int,@testInt2 int \\定義兩個變量,及變量數據類型select @testInt1=600,@testInt2=2500 \\為這兩個變量賦值execute ProcSimple1 @testInt1,@testInt2 \\將@testInt1和@testInt2的值傳遞給存儲過程ProcSimple1中@testVar1,@testVar2兩個參數調用ProcSimple1這個存儲過程,輸出相應的值。創建一個存儲過程                                                           調用這個存儲過程                                        Create proc testUser   \\創建存儲過程并將其命名為testUser                    execute  testUser 'user2','abc' \\調用存儲過程,輸入用戶名和密碼
@testUser varchar(60),    \\創建普通參數,及其數據類型                                           用戶名  密碼   
@testPassWord varchar(60) \\創建普通參數,及其數據類型
as
begin      \\程序塊開始執行
declare @testMsg varchar(100)  \\聲明變量及數據類型
if @testUser='user1'         \\首先判斷用戶是否等于user1,如果是,繼續往下循環beginif @testPassWord='123'     \\判斷密碼是否等于123set @testMsg'歡迎學習存儲過程。'  \\是的話,輸出歡迎.....else                           \\否則set @testMsg='對不起,密碼錯誤' \\輸出對不起......end
else if @testUser='user2' \\在判斷用戶是否等于user2....往下循環beginif @testPassWord='abc'  \\再判斷密碼是否為abcset @testMsg='歡迎學習存儲過程。' \\是的話,輸出歡迎.....
else                             \\否則
set @testMsg='對不起,密碼錯誤' \\對不起....
end                    
else                     \\如果前兩個條件都不成立
set @testMsg='請輸入正確的用戶名和密碼'  
print @testMsg           \\則輸出請輸入正確的....
end

?

轉載于:https://www.cnblogs.com/LNCC-ZhangXiang/p/11002276.html

總結

以上是生活随笔為你收集整理的SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品剧情 | 韩国电影一区 | 乌克兰极品av女神 | 亚洲熟伦熟女新五十路熟妇 | 亚洲无av| xxx视频在线观看 | 多啪啪免费视频 | 亚洲三级a | 综合激情网| avtt2015| 福利在线国产 | 午夜av网址| 国产污污视频在线观看 | 亚洲人成无码网站久久99热国产 | 国产大学生av | www.四虎在线观看 | 午夜影院在线播放 | 九九热在线观看视频 | 精品国产乱码一区二区三 | 波多野结衣国产 | 日韩成人激情 | 精品免费一区 | 国产ts人妖调教重口男 | 狠狠干干| 自拍偷拍在线播放 | 日韩激情久久 | 亚洲欧美激情另类校园 | 神马福利视频 | 日日爽夜夜操 | 木下凛凛子av一区二区三区 | 人人澡人人爱 | 尤物视频在线 | 欧美高清一区 | 中文字幕第一页亚洲 | 爱爱网视频 | 色片在线播放 | 中文字幕在线观看日韩 | 影音先锋久久久久av综合网成人 | 精品伦一区二区三区 | 噼里啪啦动漫高清在线观看 | 高清日韩欧美 | 日本一区二区三区精品视频 | 亚洲一区二区三区麻豆 | 人操人视频 | 在线观看av资源 | 粗大的内捧猛烈进出视频 | 自拍偷拍电影 | 成人三级黄色 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 亚洲精品一区在线观看 | 国产剧情一区二区 | 麻豆www. | 操碰人人| 欧美电影一区二区三区 | 色婷婷综合久久久久中文字幕 | 中文字幕在线播放第一页 | 第四色男人天堂 | 超碰天堂 | 少妇裸体挤奶汁奶水视频 | 欧美一区免费观看 | 懂爱av | 医生强烈淫药h调教小说视频 | 91综合久久 | 偷拍青青草 | 国产又大又粗又爽 | 久久成人精品 | 欧美少妇喷水 | 国产一区二区高清视频 | 欧美极品少妇xxxxⅹ裸体艺术 | 欧美成人性生活 | 免费观看黄色av | 男生把女生困困的视频 | 91亚洲精品久久久久久久久久久久 | 天天av综合| 精品一区二区三区无码视频 | 奇米影视第四色首页 | 亚洲www啪成人一区二区麻豆 | 蜜桃网av| 影音先锋成人资源网站 | 国产又大又粗又硬 | 国产做爰xxxⅹ高潮视频12p | 色牛影院 | 好男人视频www | 欧美3p视频 | 日日操夜夜操视频 | 国产激情在线看 | 国产精品久久久久野外 | www成人在线观看 | 日韩国产综合 | 少妇做爰免费视看片 | 私密视频在线观看 | 亚洲自拍色 | 亚洲第一色区 | 边打电话边做 | 91亚洲成人 | 日韩精品视频中文字幕 | 日韩av日韩| 看a网站 | 国产精品美女在线观看 |