当前位置: 首页 > news >正文

SqlTest(2013-07-10)

USE WSS_Content 
SELECT * FROM dbo.utTable32 WHERE DB0461A IN (SELECT DB0461A FROM dbo.utTable32 WHERE ID IN('1','2','2'))
---Row_NUMBER() OVER()
SELECT ROW_NUMBER()OVER(ORDER BY ID)AS RowNum,* FROM dbo.utTable32 ---按照id升序排序,并编号。
SELECT ROW_NUMBER()OVER(ORDER BY DB0461A)AS RowNum,* FROM dbo.utTable32 --按照车牌号升序排序并编号。
SELECT ROW_NUMBER()OVER(PARTITION by DB0461A ORDER BY DB0461A)AS RowNum,* FROM dbo.utTable32 --按照车牌号升序排序并编号。
--SELECT ROW_NUMBER()OVER(ORDER BY ID RANGE BETWEEN 2 preceding AND 2 preceding)AS RowNum,* FROM dbo.utTable32
--SELECT DB0461A,DB0923A,SUM(DB0923A)OVER(order by id) AS SS FROM dbo.utTable32
SELECT * FROM dbo.utTable32 WHERE DB0461A LIKE '豫ca%2'
SELECT COUNT(*),DB0461A  FROM dbo.utTable32 WHERE ID>90 GROUP BY DB0461A
SELECT COUNT(*),DB0461A  FROM dbo.utTable32 GROUP BY DB0461A HAVING ID>90

SELECT * FROM dbo.utTable23 T23,dbo .utTable24 T24 WHERE T23 .DB0835A =T24 .DB0835A ;
SELECT CAST(DB0835A as nvarchar(30))+CAST(DB0836A AS NVARCHAR(30)) FROM dbo.utTable23 
SELECT SUBSTRING(DB0835A,8,LEN(DB0835A)-7) FROM dbo.utTable23 
--======================游标==========================================================


--定义游标
DECLARE UT32_CURSOR CURSOR FOR 
SELECT ID,DB0002A FROM DBO.UTTABLE32
--打开游标
OPEN UT32_CURSOR
--定义变量
DECLARE @ID INT
DECLARE @NAME NVARCHAR(40)
DECLARE @CLASSid int
SELECT @CLASSid =1
--循环移动游标
FETCH NEXT FROM UT32_CURSOR INTO @ID,@NAME 
WHILE(@@FETCH_STATUS=0)
BEGIN
IF @CLASSid =12
BEGIN 
SELECT @CLASSid =1
END
SELECT @CLASSid=@CLASSid +1
INSERT INTO dbo.StuTable(ID,StuName,ClassId)VALUES(@ID,@NAME,@CLASSid)
FETCH NEXT FROM UT32_CURSOR INTO @ID,@NAME 
END
--关闭游标
CLOSE UT32_CURSOR
DEALLOCATE UT32_CURSOR
------------------------------
--随机查询
SELECT * FROM dbo.utTable32 ORDER BY NEWID()
select cast( floor(rand(20)*100) as int) 
SELECT RAND(100)*100,RAND(),RAND()

------------------------------
DECLARE StuTable_CURSOR CURSOR FOR 
SELECT ID FROM StuTable
DECLARE @Age INT
DECLARE @UpId INT
SELECT @Age =0
OPEN StuTable_CURSOR
FETCH NEXT FROM StuTable_CURSOR INTO @UpId
WHILE(@@FETCH_STATUS =0)
BEGIN
    SELECT @Age=CAST(FLOOR(RAND()*50) AS INT)
    WHILE(@Age <20)
    BEGIN
      SELECT @Age=CAST(FLOOR(RAND()*50) AS INT)
    END
    UPDATE StuTable SET StuAge=CAST(@Age AS NVARCHAR(20)) WHERE ID =@UpId
    FETCH NEXT FROM StuTable_CURSOR INTO @UpId
END
CLOSE StuTable_CURSOR
DEALLOCATE StuTable_CURSOR
-------------------------------
CREATE TABLE #ObjList(ObjName nvarchar(20) not null)
INSERT INTO #ObjList VALUES ('语文')
INSERT INTO #ObjList VALUES ('数学')
INSERT INTO #ObjList VALUES ('英语')
INSERT INTO #ObjList VALUES ('化学')
INSERT INTO #ObjList VALUES ('物理')
INSERT INTO #ObjList VALUES ('生物')

DECLARE STUTB_CURSOR CURSOR FOR 
SELECT ID FROM StuTable

DECLARE Obj_CURSOR CURSOR SCROLL FOR
SELECT ObjName FROM #ObjList

DECLARE @StuId int
DECLARE @ObjName nvarchar(20)
DECLARE @SID int
DECLARE @Score int 
SELECT @SID =0
SELECT @Score =1


OPEN STUTB_CURSOR
OPEN Obj_CURSOR

FETCH NEXT FROM STUTB_CURSOR INTO @StuId
WHILE(@@FETCH_STATUS =0)
BEGIN
  FETCH NEXT FROM Obj_CURSOR INTO @ObjName
  IF(@@FETCH_STATUS =-1)
  BEGIN 
   FETCH FIRST FROM Obj_CURSOR INTO @ObjName
   --FETCH NEXT FROM Obj_CURSOR INTO @ObjName
  END
  WHILE(@@FETCH_STATUS =0)
  BEGIN
    SELECT @Score =CAST(FLOOR(RAND()*100) AS INT)+1
    SELECT @SID=@SID+1
    INSERT INTO ScoreTable (ID,ObjectName,Score,StuId) 
         VALUES (@SID,@ObjName,@Score,@StuId)
    FETCH NEXT FROM Obj_CURSOR INTO @ObjName
  END
  FETCH NEXT FROM STUTB_CURSOR INTO @StuId
END
CLOSE STUTB_CURSOR
CLOSE Obj_CURSOR
DEALLOCATE STUTB_CURSOR
DEALLOCATE Obj_CURSOR
----------------------------------
DELETE FROM ScoreTable WHERE 1=1
----------------------------------
---统计每个班级的人数
SELECT C.ClassName,COUNT(*) AS COUT FROM ClassTable C LEFT JOIN StuTable S ON C.ID =S.ClassId GROUP BY C.ClassName
SELECT COUNT(*) AS COUT FROM ClassTable C LEFT JOIN StuTable S ON C.ID =S.ClassId WHERE C.ClassName ='2.2班'
----------------------------------
DECLARE UP_CURSOR CURSOR FOR
SELECT C.ClassName,COUNT(*) AS COUT 
FROM ClassTable C LEFT JOIN StuTable S 
ON C.ID =S.ClassId 
GROUP BY C.ClassName
DECLARE @Class nvarchar(20)
DECLARE @Count INT
OPEN UP_CURSOR
FETCH NEXT FROM UP_CURSOR INTO @Class,@Count
WHILE(@@FETCH_STATUS =0)
BEGIN
 UPDATE dbo.ClassTable SET StuCount =@Count WHERE ClassName =@Class 
 FETCH NEXT FROM UP_CURSOR INTO @Class,@Count
END
CLOSE UP_CURSOR
DEALLOCATE UP_CURSOR
-----------------------------------
--统计每个学生各科目成绩和总分
CREATE TABLE #STUSCORE
(
  ID INT,
  HX INT,
  SW INT,
  SX INT,
  WL INT,
  YY INT,
  YW INT
)
ALTER TABLE #STUSCORE ADD ZF INT
USE WSS_Content 
DECLARE STC_CURSOR CURSOR FOR
SELECT ID FROM WSS_Content.dbo.StuTable --FOR --read only --WHERE ID BETWEEN 1 AND 200

DECLARE @StudId int
OPEN STC_CURSOR
FETCH NEXT FROM STC_CURSOR INTO @StudId
WHILE(@@FETCH_STATUS =0)
BEGIN
  DECLARE SOC_CURSOR CURSOR SCROLL FOR
  SELECT ObjectName,Score,StuId FROM WSS_Content.dbo.ScoreTable WHERE StuId=@StudId ORDER BY ObjectName
  DECLARE @HX INT
  DECLARE @SW INT
  DECLARE @SX INT
  DECLARE @WL INT
  DECLARE @YY INT
  DECLARE @YW INT
  DECLARE @KSFS INT
  DECLARE @CODE INT
  DECLARE @KMLX NVARCHAR(20)
  DECLARE @IDD INT
  DECLARE @ZF INT
  OPEN SOC_CURSOR
  FETCH NEXT FROM SOC_CURSOR INTO @KMLX,@KSFS,@IDD
  IF @@FETCH_STATUS =-1
  BEGIN 
    FETCH FIRST FROM SOC_CURSOR INTO @KMLX,@KSFS,@IDD
  END
  WHILE(@@FETCH_STATUS =0)
  BEGIN
     IF(@KMLX='语文')BEGIN SELECT @YW=@KSFS END
     IF(@KMLX='数学')BEGIN SELECT @SX=@KSFS END
     IF(@KMLX='英语')BEGIN SELECT @YY=@KSFS END
     IF(@KMLX='物理')BEGIN SELECT @WL=@KSFS END
     IF(@KMLX='化学')BEGIN SELECT @HX=@KSFS END
     IF(@KMLX='生物')BEGIN SELECT @SW=@KSFS END
     FETCH NEXT FROM SOC_CURSOR INTO @KMLX,@KSFS,@IDD
  END
  SELECT @ZF =0
  SELECT @ZF=@YW+@SX+@YY+@WL+@HX+@SW
  INSERT INTO #STUSCORE VALUES (@IDD,@HX,@SW,@SX,@WL,@YY,@YW,@ZF)
  CLOSE SOC_CURSOR
  DEALLOCATE SOC_CURSOR
  FETCH NEXT FROM STC_CURSOR INTO @StudId
END
CLOSE STC_CURSOR
DEALLOCATE STC_CURSOR
-----------------------------------
DELETE FROM #STUSCORE WHERE 1=1
SELECT * FROM #STUSCORE 
SELECT A.ID,B.StuName AS 姓名 ,A.YW AS 语文,A.SX AS 数学,A.YY AS 英语,A.WL AS 物理,A.HX AS 化学,A.SW AS 生物,A.ZF AS 总分 FROM #STUSCORE A JOIN StuTable B ON A.ID =B.ID ORDER BY A.ZF DESC
SELECT * FROM ScoreTable 
-----------------------------------
DECLARE STUCUR Insensitive SCROLL CURSOR 
FOR SELECT ID FROM StuTable
DECLARE @AID INT
OPEN STUCUR
FETCH NEXT FROM STUCUR INTO @AID
DELETE FROM StuTable WHERE ID=@AID
FETCH FIRST FROM STUCUR INTO @AID
PRINT @AID
CLOSE STUCUR
DEALLOCATE STUCUR
SELECT * FROM StuTable 
-----------------------------------
DECLARE SSTUCUR CURSOR SCROLL
FOR SELECT StuName FROM StuTable
DECLARE @StuNam NVARCHAR(10)
OPEN SSTUCUR
FETCH ABSOLUTE 1 3 FROM SSTUCUR INTO @StuNam
PRINT @StuNam
CLOSE SSTUCUR
DEALLOCATE SSTUCUR

SELECT * FROM StuTable 
------------------------------------
DECLARE SSTUCUR1 CURSOR 
FOR SELECT StuName FROM StuTable
FOR UPDATE OF StuName
OPEN SSTUCUR1
FETCH NEXT FROM SSTUCUR1
UPDATE StuTable SET StuName='褚强强' WHERE CURRENT OF SSTUCUR1 
CLOSE SSTUCUR1
DEALLOCATE SSTUCUR1

DECLARE @PRI nvarchar(10)
FETCH NEXT FROM SSTUCUR1 INTO @PRI
--===========================================================
DECLARE @STUDENT NVARCHAR(20)
SELECT TOP 200 @STUDENT=StuName FROM StuTable --WHERE
PRINT @STUDENT
--=========================全局变量=================================
SELECT @@IDENTITY
SELECT * INTO TABLE1 FROM StuTable 
select @@datefirst as '星期的第一天', datepart(dw, getDate()) AS '今天是星期';
select @@datefirst as '星期的第一天', datepart(MM, getDate()) AS '月份';
select @@dbts;--返回当前数据库唯一时间戳

--===========================逻辑控制语句=============================
IF 0>0
  SELECT '90'
ELSE IF 1=2
  SELECT '120'
ELSE
  SELECT '110'
----------------------------------
PRINT '等三秒。。。。'
waitfor delay '00:00:10';--定时三秒后执行
SELECT * FROM StuTable 
----------------------------------
declare @i int;    
set @i = 1;
while (@i < 11)    
begin                        
  if (@i < 5)            
  begin                
    set @i = @i + 1;     
    continue;                   
  end      
  print @i;       
  set @i = @i + 1;                   
end
----------------------------------
----按分数划分等级A B C D
SELECT *,
     '等级'=CASE 
              WHEN SCORE >= 90 THEN 'A'
              WHEN 75<SCORE AND Score < 90 THEN 'B'
              WHEN 60<=Score AND Score<= 75 THEN 'C'
              WHEN SCORE<60 THEN 'D'
             END
FROM ScoreTable 
----------------------------------
--===================常量、变量==================================================
DECLARE @CONSTANT NVARCHAR(10)
SET @CONSTANT=N'120'--ASCII字符常量
SELECT @CONSTANT 
SET @CONSTANT ='120'--UNICODE字符常量
SELECT @CONSTANT 
SET @CONSTANT ='123.'''
SELECT @CONSTANT 
----------------------------------
DECLARE @CONST NVARCHAR(10)
DECLARE @INT INT 
DECLARE @DATE DateTime
SELECT @CONST,@INT,@DATE--常量、变量的默认值为null
--用户不能建立全局变量,也不能用SET语句改变全局变量的值。

-----------全局变量---------------
SELECT @@VERSION AS 'SQL SERVER 版本',
       @@LANGUAGE AS '当前使用语言',
       @@MAX_CONNECTIONS AS '同时连接最大数目',
       @@ROWCOUNT AS '受上个sql命令影响的行数',
       @@SERVERNAME AS '服务器名称',
       @@TIMETICKS AS '当前计算机上每刻度的微秒数',
       @@TRANCOUNT AS '当前连接打开的事务数'
----------------------------------
SELECT MAX(StuAge) FROM StuTable Group By StuAge 
SELECT StuAge FROM StuTable Group By StuAge 
--=============================日期函数=================================================
--------------------------------
DECLARE @TESTDATE DateTime
SET @TESTDATE ='2013.1.1'
SELECT DATEADD (DY,100,@TESTDATE),DATEADD(DD,100,@TESTDATE)
---------------------------------
DECLARE @DATEDIFF1 DateTime
DECLARE @DATEDIFF2 DateTime
SET @DATEDIFF1 ='2013.03.10 10:23:23:23'
SET @DATEDIFF2 ='2014.03.12 10:23:23:23'
SELECT DATEDIFF(DD,@DATEDIFF1 ,@DATEDIFF2)
---------------------------------
DECLARE @DATENAME DateTime
SET @DATENAME ='2013.05.06 23:10:10'
SELECT DATENAME(YY,@DATENAME) AS 年,DATENAME(MM,@DATENAME) AS 月,DATENAME(DD,@DATENAME) AS 天,
       DATENAME(WK,@DATENAME) AS 周,DATENAME(HH,@DATENAME) AS 时,DATENAME(MI ,@DATENAME) AS---------------------------------
SELECT GETUTCDATE()--世界标准时间
--===============================字符函数================================================
DECLARE @SringTest char(10)
SET @SringTest =ASCII('322')
SELECT @SringTest
DECLARE @Sring nvarchar(10)
SET @Sring =ASCII('123')
SELECT @Sring 
SELECT CHAR(50)

SELECT LEFT('ASDFGE',4)
SELECT RIGHT('QWEERYU',2)
SELECT LTRIM('   21455.')
--SELECT 'A'+23
SELECT 'A'+LTRIM(STR(23))
SELECT 'A'+'23'
SELECT LEN(STR(100)),LEN(LTRIM(STR(100)))

SELECT StuName,ISNULL(StuAge,0) FROM StuTable WHERE StuAge is null
SELECT StuName,ISNULL(StuAge,0) FROM StuTable WHERE ISNULL(StuAge,0)=0
SELECT StuName FROM StuTable WHERE ISNULL(StuAge,0)=0
SELECT REPLACE('231231200','2','X')
SELECT REPLICATE('2',9)
SELECT REVERSE('abcdefg')
--================================运算符===============================================
SELECT ~14,23%12
SELECT * FROM StuTable WHERE StuAge !>30
SELECT * FROM StuTable WHERE StuAge <=30
SELECT * FROM StuTable WHERE 30<StuAge
SELECT ID,StuAge,StuAge & ID FROM StuTable  --位运算

DECLARE @J INT 
SELECT @J=8
WHILE(@J<18)
BEGIN
 WHILE(@J<11)
 BEGIN
  IF @J=8
  BEGIN 
   CONTINUE
  END
  PRINT 'AB'
  SELECT @J=@J +1
 END
 PRINT 'SD'
  SELECT @J=@J +1
END 

SELECT * FROM ClassTable 
--WAITFOR TIME '13:39:50'
SELECT * FROM StuTable 
--==================================自定义函数=========================================
---------------------------标量型函数
--USE WSS_Content
--GO
--ALTER FUNCTION MYCOUNTER(@A INT,@B INT,@COUNTYPE NVARCHAR(3))
--RETURNS INT
--AS
--BEGIN
--  DECLARE @RESULT INT 
--  SET @RESULT=CASE WHEN @COUNTYPE='+' THEN @A+@B
--                   WHEN @COUNTYPE='-' THEN @A-@B
--                   WHEN @COUNTYPE='*' THEN @A*@B
--                   WHEN @COUNTYPE='/' THEN @A/@B
--              END
--  return (@RESULT)
--END
SELECT dbo.MYCOUNTER(1,2,'+'),dbo.MYCOUNTER(1,2,'*'),dbo.MYCOUNTER(1000,4,'/')
---------------------------内嵌表值函数
--USE WSS_Content 
--GO
--CREATE FUNCTION MYTABLEFUNC(@WHERE NVARCHAR(10))
--RETURNS TABLE
--AS 
--RETURN (SELECT * FROM StuTable WHER
--------------------------多语句表值函数
--===================================方法==============================================
--E StuName=@Where)
SELECT * FROM StuTable 
SELECT stuName from MYTABLEFUNC('徐俊强')
--=====================================游标=============================================
DECLARE STUCURR CURSOR 
FOR SELECT StuName FROM StuTable
DECLARE @NAM nvarchar(10)
OPEN STUCURR
FETCH NEXT FROM STUCURR INTO @NAM
WHILE(@@FETCH_STATUS=0)
BEGIN
 PRINT @NAM 
 FETCH NEXT FROM STUCURR INTO @NAM
END
CLOSE STUCURR
DEALLOCATE STUCURR
--=====================================事物=========================================
BEGIN TRANSACTION TRANS
GO
UPDATE StuTable
SET StuName='贾政09'
WHERE ID='18'
GO
SAVE TRANSACTION CHANGE
UPDATE StuTable 
SET StuName='李琦09'
WHERE ID='19'
GO 
ROLLBACK TRANSACTION TRANS
PRINT  'PROGRAM GO ON'
--COMMIT TRANSACTION 

SELECT * FROM StuTable 
--=============================存储过程==============================================
---------------系统存储过程----------------
exec sp_databases; --查看数据库
exec sp_tables;        --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;
----------------自定义存储过程--------------------------
IF(EXISTS(SELECT * FROM sys.objects WHERE name='proc_getStuTable'))
   DROP PROC proc_getStuTable
GO
CREATE PROC proc_getStuTable
AS
  SELECT * FROM StuTable

EXEC proc_getStuTable
----------------带参数存储过程--------------------------
IF(OBJECT_ID('PROC_STU','P') IS NOT NULL)
   DROP PROC PROC_STU
GO
CREATE PROC PROC_STU(@StuName nvarchar(20))
AS
    SELECT * FROM StuTable WHERE (@StuName='' OR StuName=@StuName )
GO
EXEC PROC_STU '赵春玉'
SELECT * FROM StuTable
----------------带通配符参数存储过程-------------------
IF(OBJECT_ID('PROC_STU1','P') IS NOT NULL)
   DROP PROC PROC_STU1
GO
CREATE PROC PROC_STU1(@LikeName nvarchar(10))
AS 
  SELECT * FROM StuTable WHERE StuName LIKE @LikeName
GO
EXEC PROC_STU1 '%春'
----------------带输出参数存储过程---------------------

IF(OBJECT_ID('PROC_STU2','P')) IS NOT NULL
   DROP PROC PROC_STU2 
GO
CREATE PROC PROC_STU2(@id nvarchar(10),@StuName nvarchar(20) output,@StuAge nvarchar(20) out)
with encryption
AS 
  SELECT @StuName=StuName,@StuAge =StuAge FROM StuTable WHERE (@id='' OR ID=@id) 
                                                               AND (@StuName ='' OR StuName=@StuName) 

DECLARE @STU_NAME NVARCHAR(20)
DECLARE @STU_AGE INT
SET @STU_NAME ='赵春玉'
EXEC PROC_STU2 ' ',@STU_NAME OUTPUT,@STU_AGE OUT 
PRINT @STU_NAME
PRINT @STU_AGE                                                           

SELECT * FROM StuTable WHERE StuName='赵春玉'    

exec sp_helptext 'PROC_STU2';
exec sp_helptext 'proc_temp_encryption';

--SELECT * FROM  dbo.utTable26 WHERE DB0836A='2013/07/24'  
--INSERT INTO  dbo.utTable26  (DB0836A) VALUES ('2013/07/24')    
-------------------------带游标参数的存储过程-----------------------
if(OBJECT_ID('PROC_CURSOR','P') IS NOT NULL)
  DROP PROC PROC_CURSOR
GO
CREATE PROC PROC_CURSOR @CUR CURSOR VARYING OUTPUT
AS 
   SET @CUR=CURSOR FORWARD_ONLY STATIC FOR 
   SELECT ID,StuName,StuAge FROM StuTable 
   OPEN @CUR   
  
  
DECLARE @CURS CURSOR
DECLARE @ID INT,
        @StuName nvarchar(20),
        @StuAge nvarchar(20)
EXEC PROC_CURSOR @CUR=@CURS OUTPUT
FETCH NEXT FROM @CURS INTO @ID,@StuName,@StuAge
WHILE(@@FETCH_STATUS =0)    
BEGIN
  PRINT CAST(@ID AS NVARCHAR(10))+' '+@StuName+' '+@StuAge
  FETCH NEXT FROM @CURS INTO @ID,@StuName,@StuAge
END
GO 
---------------分页存储过程------------------------
CREATE PROC PROC_PA(@StartIndex int,@EndIndex int)
AS
   SELECT * FROM( 
                SELECT *,ROW_NUMBER() OVER(ORDER BY ID) AS DID FROM StuTable
                ) T
           WHERE T.DID BETWEEN @StartIndex AND @EndIndex 
GO
ALTER PROC PROC_PAGE(@pageIndex int,@pageSize int)
AS 
  DECLARE @StartIndex INT,
          @EndIndex INT
  SET @StartIndex =  (@pageIndex-1)*@pageSize +1
  SET @EndIndex =@StartIndex +@pageSize -1;
  EXEC PROC_PA @StartIndex,@EndIndex
GO
EXEC PROC_PAGE 1,20  
EXEC PROC_PAGE 2,20  
EXEC PROC_PAGE 3,20  
GO         
--===================================触发器========================================
CREATE TRIGGER TRIG_StuTable ON StuTable
FOR INSERT
AS 
  DECLARE @MAXID NVARCHAR(12)
  SELECT @MAXID=MAX(ID) FROM StuTable 
  SELECT * FROM StuTable WHERE ID=@MAXID--向表StuTable中添加数据时,将新添的数据显示出来。
GO
----------------------------------------------
CREATE PROC InsertStuTableInfo(@stuName nvarchar(20),@stuAge int,@classId int)
AS 
  DECLARE @maxId int
  SELECT @maxId=MAX(ID) FROM StuTable 
  INSERT INTO StuTable VALUES(@maxId+1,@stuName,@stuAge,@classId)
GO 
---------------------------------------------- 
EXEC InsertStuTableInfo '高工01',25,8
GO
--============================================视图==================================
CREATE VIEW View_StuTable 
AS 
  SELECT * FROM StuTable 
GO

DELETE FROM View_StuTable WHERE ID='18'
DELETE FROM StuTable WHERE ID='18'
GO
CREATE VIEW View_Score
AS 
  SELECT * FROM ScoreTable 
GO
DELETE FROM View_Score WHERE ID=2
UPDATE View_Score Set Score=90 WHERE ID=3
GO 

ALTER VIEW View_StuClass
AS
  SELECT S.ID,S.ClassId,S.StuName,S.StuAge ,C.ClassName FROM StuTable S JOIN ClassTable C ON S.ClassId =C.ID 
GO  
/*
消息 4405,级别 16,状态 1,第 1 行
视图或函数 'View_StuClass' 不可更新,因为修改会影响多个基表。
附件:http://dl.vmall.com/c004cxnrfa http://dl.vmall.com/c03ulland3

 

转载于:https://www.cnblogs.com/Lijq/p/4447162.html

相关文章:

  • 蓝桥杯-K倍区间(前缀和) 分巧克力(二分)
  • Linux下MySQL5.6源码安装
  • HDU-1024 Max Sum Plus Plus(DP)
  • C#开发微信门户及应用(27)-公众号模板消息管理
  • CodeForces 628D(数位DP)
  • 多重背包--二进制优化
  • JS高级程序设计2nd部分知识要点2
  • HDU-4549(矩阵快速幂+欧拉定理)
  • xcode Aborting commit: '~/Pods' remains in tree-conflict 错误的解决办法
  • 网络流之最大流(FF, EK, Dinic, SAP)
  • QDU-ycb的ACM进阶之路(多重背包做法)
  • 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—B qwb与矩阵
  • F5 LTM 在SIP消息负载均衡中存在的问题
  • 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—D qwb与神奇的序列
  • 我所爱的世界
  • CSS实用技巧干货
  • If…else
  • js数组之filter
  • Material Design
  • MQ框架的比较
  • mysql常用命令汇总
  • Netty 4.1 源代码学习:线程模型
  • Python进阶细节
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Vue2.0 实现互斥
  • 百度小程序遇到的问题
  • 从零搭建Koa2 Server
  • 当SetTimeout遇到了字符串
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 技术:超级实用的电脑小技巧
  • 京东美团研发面经
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 日剧·日综资源集合(建议收藏)
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 运行时添加log4j2的appender
  • 我们雇佣了一只大猴子...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (a /b)*c的值
  • (C语言)字符分类函数
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (排序详解之 堆排序)
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (算法)前K大的和
  • (学习日记)2024.01.09
  • (一一四)第九章编程练习
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)ORM