SQL建立的幾種儲存過程

2022-10-03 18:30:12 字數 1612 閱讀 8247

建立儲存過程

表名和比較字段可以做引數的儲存過程

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...