T - SQL (2) 함수 와 저장 과정

1707 단어 SQL
데이터 원본 pubs 예제 데이터베이스
목표 1. 사용자 정의 함수 작성 하기;2. 사용자 정의 저장 프로 세 스 를 작성 합 니 다.3. 클 라 이언 트 프로그램 을 작성 하여 저장 과정 을 호출 하고 selection 결과 집합, 반환 값 과 출력 파 라 메 터 를 표시 합 니 다.
코드
-- T-SQL
--     
--                ID   
create function get_author_id
  (
  @author_lname varchar(20),
    @author_fname varchar(20)
  )
  returns table
  as
    return(select authors.au_id from authors
    where @author_fname = authors.au_fname and @author_lname = authors.au_lname)

--       
create proc get_author_titles_info
  @author_lname varchar(20),
    @author_fname varchar(20),
      @mark varchar(5) output
  as
  begin
    select titles.title_id, titles.title from titleauthor, titles
    where titleauthor.title_id = titles.title_id and titleauthor.au_id in (
      select *
      from get_author_id(@author_lname, @author_fname)
    )
    set @mark = 'yeah!'
    return 1
  end

--             
create table call_proc_output(
  re varchar(20),
  m varchar(20)
)
# Python
import pymssql

#          
conn = pymssql.connect(server='localhost', database='pubs')

#     
cur = conn.cursor()

#    SQL   
sql = '''
declare @re int
declare @mark varchar(5)
drop table call_proc_output
create table call_proc_output(
  re varchar(20),
  m varchar(20)
)
exec @re = dbo.get_author_titles_info 'Green', 'Marjorie', @mark output
insert into call_proc_output values (@re, @mark)
'''
cur.execute(sql)

#       
result = cur.fetchall()

#     
print(result)
#

#          
sql = '''
select * from call_proc_output
'''
cur.execute(sql)
result = cur.fetchall()
print(result)

#     
conn.close()

좋은 웹페이지 즐겨찾기