Crear un procedimiento almacenado
go
--Crear base de datos
if(db_id('studentDB' ) ) no es nulo
eliminar base de datos [studentDB]<
crear base de datos [studentDB]
ir
usar [studentDB]< / p>
go
--Crear tabla de estudiantes
Crear tabla [estudiante]
(
[ StudentId] int identidad (1, 1) clave principal,
[stuName] varchar(50) no nulo
)
gouse [studentDB]
ir a
--crear tabla [calificaciones]
crear tabla [puntuación]
(
[studentId] int not null,
[subjectName] varchar(50) not null,
[score]int
)
--Agregar restricciones de clave externa
--studentId
Cambiar tabla [puntuación]
Agregar restricción FK_score_student
clave externa([studentId])
Referencia [ estudiante] ([studentId])
ir
--Insertar datos de prueba
Insertar [estudiante]
seleccionar unión 'Zhangsan'
seleccione la unión 'Li Si'
seleccione la unión 'rey cinco'
seleccione la unión 'high six'
seleccione 'zhao siete' '
goinsert [puntuación]
seleccione 1. idioma',50 unión
seleccione 1,'matemáticas',51 unión
seleccione 1. 'Inglés', 52 Unión
Seleccione 2, 'Idioma', 60 Unión
Seleccione 2, 'Matemáticas', 61 Unión
Seleccione 2 , 'Inglés',62 Unión
Selecciona 3, 'Idioma',70 Unión
Selecciona 3, 'Matemáticas',71 Unión
Selecciona 3, ' English ',72 union
Selecciona 4, 'Matemáticas',null union
Selecciona 4, idioma',100 union
select 4,'English', null
go
use [studentDB]
go
--Crea un procedimiento almacenado para devolver el estado de selección de cursos de los estudiantes p>
Cambiar procedimiento almacenado [pro_GetStudentScore]
@ sujetoNombre varchar(50)
as
select stu.[studentId],stu.[stuName ], isnull(sco.[subjectName],'El estudiante no eligió ningún curso') [cursos],isnull(convert (varchar(50),sco.[score]),'No hay gra
de para este curso en la lista de calificaciones') [calificación]
de [estudiante] stu left join [puntuación] sco on(stu.[studentId]=sco.[studentId])
donde sco.[subjectName]=@subjectName
go
--exec [pro_GetStudentScore] 'Inglés'
--seleccione * de la puntuación p>