建立儲存過程
表名和比較字段可以做引數的儲存過程
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_teacherinfowww.cppcns.com','teano', '07417502'
// 注意:像這樣的呼叫是錯誤的
還原成查詢語句
select * from tbl_teacherinfo where teano = 07417502
之所以沒報錯,是因為引數'0741www.cppcns.com7502'被誤認為了 整型,進行了整數的比較
exec sp_getteacherinfo 'tbl_teacherinfo','name','楚留香'
// 報錯
還原成查詢語句
select * from tbl_teacherinfo程式設計客棧 where teano = 楚留香
// 顯然是錯誤的
正確的呼叫方法
exec sp_getteacherinfo 'tbl_teacherinfo','name',"'楚留香' "
還原成查詢語句
select * from tbl_teacherinfo where teano = '楚留香'
常規儲存過程的建立
create procedure spwjxxce_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兩列不返回,其他都返回
本文標題: sql建立的幾種儲存過程
本文位址:
SQL建立的幾種儲存過程
建立儲存過程 表名和比較字段可以做引數的儲存過程 create procedure sp getteacherinfo tblname nvarchar 30 表名 cmpstr nvarchar 30 參與比較的值 tblatr nvarchar 30 參與比較的字段 asdeclare sql ...
sql儲存過程的建立
一 沒有引數的儲存過程 create procedure select all asbegin select from t login1 endgo 二 帶引數的儲存過程 create procedure select name id uniqueidentifier asbegin select ...
SQL 建立儲存過程PROCEDURE
1 建立儲存過程 use test2 gocreate procedure fruitproce 檢視表fruits的儲存過程 asselect from fruits go use test2 go create procedure countproce 獲取表fruits的記錄數 asselec...