您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)SQL中如何創(chuàng)建存儲過程,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)建存儲過程 表名和比較字段可以做參數(shù)的存儲過程
Create PROCEDURE sp_getTeacherInfo @TblName nvarchar(30), -- 表名 @CmpStr nvarchar(30), -- 參與比較的值 @TblAtr nvarchar(30) -- 參與比較的字段 AS DECLARE @sql varchar(4000) SET @sql = 'select * from ' + @TblName + ' where ' + @TblAtr + '=' + @CmpStr EXEC (@sql) 表 tbl_TeacherInfo Exec sp_getTeacherInfo 'tbl_TeacherInfo','TeaNo', '07417502' // 注意:像這樣的調(diào)用是錯誤的 還原成查詢語句 select * from tbl_TeacherInfo where TeaNo = 07417502 之所以沒報錯,是因為參數(shù)'07417502'被誤認為了 整型,進行了整數(shù)的比較 Exec sp_getTeacherInfo 'tbl_TeacherInfo','Name','楚留香' // 報錯 還原成查詢語句 select * from tbl_TeacherInfo where TeaNo = 楚留香 // 顯然是錯誤的 正確的調(diào)用方法 Exec sp_getTeacherInfo 'tbl_TeacherInfo','Name',"'楚留香' " 還原成查詢語句 select * from tbl_TeacherInfo where TeaNo = '楚留香' 常規(guī)存儲過程的創(chuàng)建 Create PROCEDURE sp_AddRowToLogin @TeaNo nvarchar(100), -- 比較字段 @TeaName nvarchar(100) -- 比較字段 AS insert into tbl_UserLogin values(@TeaNo,@TeaName,@TeaNo,0) 除了指定列其他列都返回的存儲過程 CREATE PROCEDURE sp_Alter @TblName nvarchar(30) -- 表名 AS declare @sql varchar(1000) select @sql='select ' select @sql=@sql+name+',' from syscolumns where id=object_id(@TblName) and name not in ('ID','TeaNo') select @sql=left(@sql,len(@sql)-1) select @sql=@sql+' from ' + @TblName exec (@sql) // 除了ID和TeaNo兩列不返回,其他都返回
看完上述內(nèi)容,你們對SQL中如何創(chuàng)建存儲過程有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。