因为我用的sql2005数据库是简装版,没有导入、导出功能,所有就用:Microsoft SQL Server Database Publishing Wizard来导出脚本后,
在sql2000上运行了。
要运行的转换过的sql2000脚本是(部分代码):
CREATE VIEW [dbo].[vCAMNPR_User_Video_Comment]
AS
SELECT UserID, Anonymous, PhotoID, [Content], Competence, AlbumID, CreateTime, ID,
(SELECT COUNT(1) AS Expr1
FROM dbo.CAMNPR_User_Video_Comment
WHERE (dbo.CAMNPR_User_Video_CommentParent.ID = PID)) AS CountChildComment,
(SELECT TOP (1) UserName
FROM dbo.CAMNPR_User_Ex
WHERE (UserID = dbo.CAMNPR_User_Video_CommentParent.UserID)) AS CommentUserName
FROM dbo.CAMNPR_User_Video_CommentParent
提示的错误是:
消息 170,级别 15,状态 1,过程 vCAMNPR_User_Video_Comment,第 7 行
第 7 行: ’(’ 附近有语法错误。
排错方法:先在一大段代码里,提出创建视图的代码,因为要执行脚本的目的就是要附加视图到其它数据库里,单独执行创建视图的脚本也出同样的错误。
这样就可以缩小范围了,反复看了一下这段代码,一头雾水,在sql2005里执行都没问题,最终锁定到这个“TOP (1)”,sql2000不支持带括号的,改成“TOP 1”,问题就解决了。