SQL Server 执行update语句出错,求大神
一直用的是Oracle数据库,今天学习一下SQLserver的语法,在两个数据库执行相同效果的一个update语句,不知道为什么SQLserver总是说有错误,我的sql...
一直用的是Oracle数据库,今天学习一下SQL server的语法,在两个数据库执行相同效果的一个update语句,不知道为什么SQL server总是说有错误,
我的sql server 版本是:Microsoft SQL Server 2008 (SP1) ,我不知道是不是版本的问题,因为只是这么简单的一个update语句折腾,真是无语
UPDATE Mychu_Schema.HAND_STUDENT hs
SET hs.student_age = hs.student_age + 1
FROM Mychu_Schema.HAND_STUDENT_CORE hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011'
出现错误'hs' 附近有语法错误。
Oracle语法:
UPDATE hand_student hs
SET hs.student_age = hs.student_age + 1
WHERE hs.student_no IN (SELECT hsc.student_no
FROM hand_student_core hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011') 展开
我的sql server 版本是:Microsoft SQL Server 2008 (SP1) ,我不知道是不是版本的问题,因为只是这么简单的一个update语句折腾,真是无语
UPDATE Mychu_Schema.HAND_STUDENT hs
SET hs.student_age = hs.student_age + 1
FROM Mychu_Schema.HAND_STUDENT_CORE hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011'
出现错误'hs' 附近有语法错误。
Oracle语法:
UPDATE hand_student hs
SET hs.student_age = hs.student_age + 1
WHERE hs.student_no IN (SELECT hsc.student_no
FROM hand_student_core hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011') 展开
1个回答
展开全部
正确写法如下:
UPDATE hs
SET hs.student_age = hs.student_age + 1
FROM Mychu_Schema.HAND_STUDENT hs,Mychu_Schema.HAND_STUDENT_CORE hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011'
也可以用类Oralce的写法:
UPDATE hs
SET hs.student_age = hs.student_age + 1
FROM hand_student hs --注意这里
WHERE hs.student_no IN (SELECT hsc.student_no
FROM hand_student_core hsc
WHERE hsc.student_no = hs.student_no
AND hsc.course_no = 'c011')
重要差异在于 update 后面的数据库名不能直接指定别名,只能在 from 后指定。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询