sqlserver存储过程面试题(**Lserver 数据库触发器 存储过程问题)
本文目录
- **Lserver 数据库触发器 存储过程问题
- SqlServer创建表,可能用到存储过程,大牛露个面,进来赐教啦!O(∩_∩)O哈哈~
- 一道面试题 :sql server 2000有哪些数据库系统,它们各自的作用是什么
- **L面试题,谢谢,麻烦了
- 关于**LSERVER存储过程的问题,求解
- 求:存储过程面试题!
- 关于**LSERVER的存储过程的几个题目..求解~!~~
**Lserver 数据库触发器 存储过程问题
添加的:
CREATE
TRIGGER
trig_xx_add
ON
AFTER
UPDATE,INSERT
AS
BEGIN
INSERT
INTO
()
SELECT
FROM
inserted
WHERE
NOT
EXISTS(SELECT
1
FROM
WHERE
)
END
假设你的id都是identity,
如果不是的话根据自己的需要进行修改
删除的也类似,
但是不知道你的需求是什么
SqlServer创建表,可能用到存储过程,大牛露个面,进来赐教啦!O(∩_∩)O哈哈~
CREATE TRIGGER tr_Question_ins
ON Question
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO Question(各列名)
SELECT (CASE WHEN Qclass=N’选择’ THEN ’XZ’
WHEN Qclass=N’判断’ THEN ’PD’
WHEN Qclass=N’简答’ THEN ’JD’
WHEN Qclass=N’计算’ THEN ’JS’
END)+
RIGHT(’000’+ROW_NUMBER() OVER(PARTITION BY a.Qclass ORDER BY a.Qno)+b.Qno,4),a.其他列
FROM INSERTED a
JOIN (
SELECT Qclass,CONVERT(INT,RIGHT(MAX(QNo),4))QNo FROM Question GROUP BY Qclass
)b ON a.Qclass=b.Qclass
end
check约束,后两项自己补全
CHECK((Qclass=N’选择’ AND Qopti***A IS NOT NULL AND Qopti***B IS NOT NULL)
OR (Qclass《》N’选择’ AND Qopti***A IS NULL AND Qopti***B IS NULL)
一道面试题 :sql server 2000有哪些数据库系统,它们各自的作用是什么
master,model,msdb,northwind,pubs,tempdb
pubs 示例数据库
pubs 示例数据库以一个图书出版公司为模型,用于演示 Microsoft **L Server 数据库中可用的许多选项。该数据库及其中的表经常在文档内容所介绍的示例中使用。
Northwind 示例数据库
Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易。
master 数据库
master 数据库记录 **L Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。master 数据库记录 **L Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
tempdb 数据库
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 **L Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 **L Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 **L Server 的一个会话保存到另一个会话。
默认情况下,在 **L Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 **L Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
model 数据库
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 **L Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 **L Server 系统中。
msdb 数据库
msdb 数据库供 **L Server 代理程序调度警报和作业以及记录操作员时使用。
**L面试题,谢谢,麻烦了
1 select to_char(regdate,’yyyymm’),count(*) from a group by to_char(regdate,’yyyymm’);
2 select name,count(*) from a group by name;
3 insert into c select id,name from a where name in (select name from a group by name having count(*)》1);
4 select * from a, (select name,max(regdate) from a group by name ) as d where a.name=d.name and a.regdate=d.regdate
这里用to_char了,说明是oracle库,LS的那是sqlserver的查法
关于**LSERVER存储过程的问题,求解
这段要分几部分解释
IF EXISTS (SELECT name FROM sysobjects WHERE name = ’salary_test_data’ AND type = ’P’) drop PROCEDURE salary_test_data GO--验证是否存在存储过程salary_test_data ,如果存在就直接删除
create procedure salary_test_data @val VARCHAR OUTPUT AS begin set @val = ’12222’ endGO --创建存储过程 salary_test_data 设置输出变量 @val 输出值为12222
declare @val VARCHAR --定义变量 @val
exec salary_test_data @val --执行前面定义的存储过程salary_test_data 用变量 @val接收输出值
print ’val:’ + @val GO --打印@val输出的结果 打印内容为: val:12222
求:存储过程面试题!
其实存储过程的基本写法我相信你都知道了。
面试这种语言不要紧张,估计多数是要考你对sql效率概念的理解。
普通的sql语句谁都会写的,但是这样的语句往往会造成程序的低效,在压力比较大的服务器上,很有可能造成系统的瘫痪。
注意几点:
1、写语句要用到索引
2、not exists 替换 not in
3、exists 替换 in
4、尽量不要用3个表以上的连接,宁可单个单个取
5、注意书写规则,要写的明白写,错误信息返回那个地方要注意
6、写游标的话,要注意有退出的地方和关闭游标。
7、变量之间要注意转换,隐式的转换往往会耗掉更多的时间。
这些是最基本的了,你需要查阅相关资料进行了解下。
关于**LSERVER的存储过程的几个题目..求解~!~~
1、
CREATE FUNCTION return_num
(@Class_Num varchar(20) )
RETURNS int
AS
BEGIN
RETURN ( select cout(*) from clas**ates where classnum=@Class_Num )
END
3、
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N’Database 数据库名字’ AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N’JOB’, @type=N’LOCAL’, @name=N’Database 数据库名字’
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N’备份数据库名字’,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N’每天上午数据库备份’,
@category_name=N’Database 数据库名字’,
@owner_login_name=N’sa’, @job_id = @jobId OUTPUT
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N’Daily Backup’,
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N’T**L’,
@command=N’declare @strDate nvarchar(max);
set @strDate = N’’D:\DataBaseAutoBackup\数据库名字_’’ + Convert(nvarchar(8),getdate(),112) + N’’.bak’’
BACKUP DATABASE TO DISK = @strDate WITH NOFORMAT, NOINIT, NAME = N’’数据库名字_Dev-完整 数据库 备份’’, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO’,
@database_name=N’master’,
@flags=0
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N’Daily Backup’,
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20120510,
@active_end_date=99991231,
@active_start_time=50000,
@active_end_time=235959,
@schedule_uid=N’f90cfdc3-cb5d-4e19-9e93-99b8921d36c0’
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N’(local)’
IF (@@ERROR 《》 0 OR @ReturnCode 《》 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT 》 0) ROLLBACK TRANSACTION
EndSave:
GO
更多文章:
全球展览设计的图片(会展设计是是什么,就业和前景怎样,请教)
2026年4月1日 18:40
priority queue(优先队列中的pop函数是将元素删除出来还是放到队尾)
2026年4月1日 18:20
sqlserver存储过程面试题(**Lserver 数据库触发器 存储过程问题)
2026年4月1日 18:00
crm客户管理系统模板(CRM客户管理系统如何进行数据统计分析的)
2026年4月1日 17:20
javascript onfocus(javascript中怎么设置文本框获得焦点)
2026年4月1日 16:40
kafka创建topic(ApacheKafka开源消息系统_kafka源码分析)
2026年4月1日 16:20





