SQL創(chuàng)建的幾種存儲過程
創(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兩列不返回,其他都返回
相關文章
win2008 r2 安裝sql server 2005/2008 無法連接服務器解決方法
在與 SQL Server 建立連接時出現(xiàn)與網(wǎng)絡相關的或特定于實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確并且 SQL Server 已配置為允許遠程連接2015-01-01SQL?Server2019安裝后出現(xiàn)連接失敗的解決方法
在開發(fā)中我們經(jīng)常會用到SQL?Server,下面這篇文章主要給大家介紹了關于SQL?Server2019安裝后出現(xiàn)連接失敗的解決方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-12-12拯救你的數(shù)據(jù) 通過日志恢復MSSQL數(shù)據(jù)
這篇文章主要為大家詳細介紹了如何通過日志恢復MSSQL數(shù)據(jù)的具體步驟,感興趣的小伙伴們可以參考一下2016-05-05SQL Server解析XML數(shù)據(jù)的方法詳解
這篇文章主要介紹了SQL Server解析XML數(shù)據(jù)的方法,結合實例形式詳細分析了SQL Server針對xml數(shù)據(jù)的讀取,遍歷,刪除,查找等常用操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06