1樓:匿名使用者
set quoted_identifier ongoset ansi_nulls on
gocreate proc a --建立儲存過程名字為a,再次執行時將create改為alter
@sname nvarchar(100)='' --傳遞的引數asselect a.sno,b.cname,c.
grade from student a,course b,sc c --分別給表命名為a,b,c
where a.sname=@sname and a.sno = c.sno and b.cno=c.cno --查詢條件
go set quoted_identifier offgoset ansi_nulls on
goexec a '名字' --執行儲存過程語句,可在儲存過程外這次呢?
2樓:匿名使用者
oracle下的procedure
create or replace procedure get_imfor(name varchar2,no out number,
v_cname out varchar2,v_grade out number)
--name 預設為輸入引數,no、v_canme、v_grade為輸出引數
isbegin
select a.sno,b.cname,c.grade into no,v_cname,v_grade
from student a,course b,sc c
where a.sno=c.sno and
b.cno=c.cno and
upper(s.name)=upper(name);
--upper()函式將字串全部小寫,也就是忽略大小寫的意思
end get_imfor;
這是oralce下的過程,sql server下,就需要你自己稍加修改
3樓:匿名使用者
set ansi_nulls on
goset quoted_identifier ongocreate procedure sp_getinfo@ag_sname nchar(10) --傳遞的引數asbegin
select 你想要的字段
from student a,
course b,
sc c
where a.sno = c.sno
and b.cno = c.cno
and trim(a.sname) = @ag_sname --簡單的鏈結,把引數寫到語句裡
endgo
--執行語句 exec sp_getinfo '名字'
4樓:化卯
create proc myproc
@sname nvarchar(50)
asdeclare @sno int --比如是學號declare @cname nvarchar(50)--比如是課程名稱
declare @grade int --比如是課程成績select @sno=st.sno,@cname=co.cname,@grade=sc.
grade from student as st
inner join sc as sc on sc.sno=st.sno inner join course as co on co.
cno=sc.cno where st.sname=@sname
print @sno
print @grade
print @cname
exec myproc '姓名'
你可以根據此儲存過程並針對你資料庫所需要的字段進行修改,在不了解你資料庫字段意義的情況下只能幫你這麼多
sql語句,儲存過程,智慧型更新,SQL 乙個儲存過程中 執行兩個更新操作 怎麼寫
簡單啊,用if判定一下就可以了啊,在update之前先判定name是否為空 if isnull name,update 表 set username username where id id 同等道理,age也一樣的做就可以了。當然,判定條件並列的話,你可以一起判定 如果想使用多條語句的話,有兩種方...
mysql儲存過程引數能放到sql語句最後面嗎
不可以delimeter create procedure pro latest in num int begin set n num prepare sqlstring from select from product order by timestamp desc limit execute s...
看看這個SQL 儲存過程 錯在哪裡?
set countrows select count 1 from 選書單檢視 where 單位編號 companynumber and 是否提交 0 and 是否審核 1 記得加上小括號。set summoney select sum 小計 from選書單檢視 where 單位編號 company...