有一个学生表,表里有班级,学生名字。现在用sqlsever创建一个名为stu_pr的存储过程,该存储过程能查询出051班学生的所有资料,要求在创建存储过程前判断该存储过程是否已创建,若已创建先删除,并给出“已删除!”信息,否则给出“不存在,可创建!”的信息。
时间: 2024-03-25 12:37:11 浏览: 18
好的,我可以帮您解决这个问题。以下是存储过程的代码:
```
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'stu_pr')
BEGIN
DROP PROCEDURE stu_pr;
PRINT '已删除!'
END
ELSE
BEGIN
PRINT '不存在,可创建!'
END
CREATE PROCEDURE stu_pr
AS
BEGIN
SELECT * FROM 学生表 WHERE 班级 = '051'
END
```
这个存储过程首先会查询系统表来判断是否已经存在名为“stu_pr”的存储过程,如果存在则删除它并输出“已删除!”的信息。如果不存在则输出“不存在,可创建!”的信息。接下来创建名为“stu_pr”的存储过程,用于查询班级为“051”的学生资料。
相关问题
有一个视图,名字是stu_view。现在用sql sever将视图stu_view的名字更名成stu
在SQL Server中,您可以使用以下SQL语句将名为stu_view的视图重命名为stu:
```
EXEC sp_rename 'stu_view', 'stu', 'OBJECT';
```
执行此语句后,名为stu_view的视图将被重命名为stu。请注意,使用`sp_rename`存储过程进行重命名操作时,需要指定对象类型,因此在此示例中需要指定为‘OBJECT’。
有一个视图,名字是stuview1。用sqlsever通过查询表sysobjects查看视图stuview1的创建信息
你可以使用以下的SQL语句来查询sysobjects表查看视图stuview1的创建信息:
```
SELECT crdate, text
FROM sysobjects o
JOIN syscomments c ON o.id = c.id
WHERE o.name = 'stuview1' AND o.xtype = 'V'
```
其中,crdate表示创建时间,text表示视图的创建语句。