UPDATE:
PRINT'当前有'+CONVERT(VARCHAR(3),@@CURSOR_ROWS)+'条数据行。'
FETCH NEXT FROM[CUR_T_YG]WHILE(@@FETCH_STATUS=0)
BEGIN
UPDATE[T_yuangongxinxi]SET[工号] =[工号]+100
WHERE CURRENT OF CUR_T_YG
FETCH NEXT FROM[CUR_T_YG]ENDSELECT:

关闭释放:
CLOSE GLOBAL CUR_T_YG
DEALLOCATE GLOBAL CUR_T_YG三:PROCEDURE,存储过程是利用SQL Server所提供的Transact-SQL语言所编写的程序,同时也能在高级语言上调用其存储过程。 3.1.无参数:说一个调用查询数据表的pro:
USE SQL_SYSTEM
GO
CREATE PROCEDURE PRO_SELECT_T
WITH RECOMPILE
AS
SELECT* FROM[T_yuangongxinxi]GO
EXECUTE:
EXECUTE PRO_SELECT_T
F5:

3.1.2.EXECUTE PRO_SELECT_T在这里其实就是一个view,还可以把execute调用结果插入到新表:
USE SQL_SYSTEM
SELECT*
INTO AA
FROM[T_yuangongxinxi]GO
TRUNCATE TABLE AA --TRUNCATE与DELETE的区别就是TR效率高于DE,而且DE清空时会在日志里面留下恢复记录
GO
INSERT INTO AA
EXECUTE PRO_SELECT_T
GO结果就不截图了, 3.2.带参pro,写个修改后输出修改的信息: 例如公司的员工经常有职位变动的情况,就写个这方面的,给出变动员工的工号就可以修改该员工的职位,然后将修改的操作反馈出来:
USE SQL_SYSTEM
GO
CREATE PROCEDURE PRO_DAUP_ZHIWEI
@GONGHAO INT,@ZHIWEI NVARCHAR(10),@RETURNS NVARCHAR(50) OUTPUT
AS
BEGIN
/*获取更新前的职位信息*/
DECLARE @QIAN_RETURN_ZHIWEI NVARCHAR(10),@XINGMING NVARCHAR(3)
SELECT @QIAN_RETURN_ZHIWEI =AA.职位 ,@XINGMING =AA.姓名
FROM[AA]WHERE AA.工号 =@GONGHAO
/*更新*/
UPDATE[AA]SET[职位] =@ZHIWEI WHERE AA.工号 =@GONGHAO
SET @RETURNS = '已经成功将工号为:【'+CONVERT(VARCHAR(3),@GONGHAO)+'】,姓名为:【'+@XINGMING+'】,职位【'+
@QIAN_RETURN_ZHIWEI+'】更新为:【'+@ZHIWEI
ENDEXECUTE:
DECLARE @PRINTF NVARCHAR(50);
EXECUTE PRO_DAUP_ZHIWEI 101,'SQL工程师',@PRINTF OUTPUT
SELECT @PRINTF AS '更新消息'
GOF5:

PRO就说到这里了;
四:TRIGGER,触发器,类似于一个地雷一样,只要你触犯了他的要求的话,他就开始工作了,也可以利用这个功能去维持或阻挡某些不想发生的错误操作, DDL:如:不许删除某个【AA】表:










