我想知道如何在Sybase 15中执行以下操作。
DECLARE @DEPTH INTSET @DEPTH = 8SELECT TOP @DEPTH * FROM Table它给了我以下错误:错误(102)‘@DEPTH’附近的语法不正确…
有几种选择:
select
set rowcount
execute()
动态查询示例:
declare @depth int, @query varchar(16384) select @depth = 8 select @query = 'select top '+convert(varchar,@depth)+' * from table' execute(@query) go
TOP只接受整数常量,而不是变量。如果您运行的是最新版本(16.0 SP03),则可以使用ROWS LIMIT @v而不是TOP。
正如其他人所提到的,您可以通过动态构建查询来解决TOP @v问题。
答案是:
DECLARE @DEPTH INT SET @DEPTH = 8 SET ROWCOUNT @DEPTH SELECT * FROM Table SET ROWCOUNT 0