数据库是sql 2000create proc jczl_select_newidbytableandprefix
@prefix varchar(20),
@tablename varchar(50),
@idname varchar(20),
@newid varchar(20) output
as
begin
SELECT @newid=(@prefix+RIGHT(1001+ISNULL(RIGHT(MAX(str(@idname)),3),0),3)) FROM @tablename WITH(XLOCK,PAGLOCK)
end报错:服务器: 消息 156,级别 15,状态 1,过程 jczl_select_newidbytableandprefix,行 8
在关键字 'WITH' 附近有语法错误。
@prefix varchar(20),
@tablename varchar(50),
@idname varchar(20),
@newid varchar(20) output
as
begin
SELECT @newid=(@prefix+RIGHT(1001+ISNULL(RIGHT(MAX(str(@idname)),3),0),3)) FROM @tablename WITH(XLOCK,PAGLOCK)
end报错:服务器: 消息 156,级别 15,状态 1,过程 jczl_select_newidbytableandprefix,行 8
在关键字 'WITH' 附近有语法错误。
create proc jczl_select_newidbytableandprefix
@prefix varchar(20),
@tablename varchar(50),
@idname varchar(20),
@newid varchar(20) output
as
begin
SELECT @newid=(@prefix+RIGHT(1001+ISNULL(RIGHT(MAX(str(@idname)),3),0),3) FROM @tablename WITH(XLOCK,PAGLOCK)
end
服务器: 消息 156,级别 15,状态 1,过程 jczl_select_newidbytableandprefix,行 8
在关键字 'FROM' 附近有语法错误。
@prefix varchar(20),
@tablename varchar(50),
@idname varchar(20),
@newid varchar(20) output
as
begin
DECLARE @S NVARCHAR(4000)
SET @S='SELECT @newid=(@prefix+RIGHT(1001+ISNULL(RIGHT(MAX(str(@idname)),3),0),3)) FROM @tablename WITH(XLOCK,PAGLOCK) D '
EXEC sp_executesql @S
end
试试