2000里要用 exec('select top '+convert(varchar(10),@start)+' * from table')2005里还可以用 select top (@start) * from table
首先我觉得存储过程在创建后 要exec 过程名 才能 执行至少我没见过这样的语句
当然有错. top 后只能跟常量. 用 sp_execsql 就可以.
exec('select top ' + @start +' * from arrange where Arrange_Characer_Server='+@server)为什么这么写还说字段名 Arrange_Characer_Server无效呢?
exec('select top ' + @start +' * from arrange where Arrange_Character_Server= @server')这么写就让我生命变量@server,上面那么写就告诉我列名无效。
print ('select top ' + @start +' * from arrange where Arrange_Character_Server= @server') 这条语句出来,然后用打印出来的语句执行,抱什么错误.
这个是打印结果 select top 1 * from arrange where Arrange_Character_Server= @server 下面是错误 服务器: 消息 137,级别 15,状态 2,行 1 必须声明变量 '@server'。
如果把@server放到外面打印出这个结果 :exec('select top ' + @start +' * from arrange where Arrange_Character_Server= '+@server) 错误是:字段a无效 select top 1 * from arrange where Arrange_Character_Server= a怎么能在a两边加上单引号啊?
2000里要用
exec('select top '+convert(varchar(10),@start)+' * from table')2005里还可以用
select top (@start) * from table
执行至少我没见过这样的语句
当然有错. top 后只能跟常量.
用 sp_execsql 就可以.
这条语句出来,然后用打印出来的语句执行,抱什么错误.
下面是错误
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@server'。
如果把@server放到外面打印出这个结果 :exec('select top ' + @start +' * from arrange where Arrange_Character_Server= '+@server)
错误是:字段a无效
select top 1 * from arrange where Arrange_Character_Server= a怎么能在a两边加上单引号啊?