create procedure [web104542].[selectnews]
@rowcountbig int=null,
@tablerow varchar(50)=null,
@tablename varchar(20)=null,
@keyword varchar(20)=null,
@tablekeyrow varchar(20)=null
output asdeclare @sql varchar(8000)
set @sql='set rowcount '+cast(isnull(@rowcountbig,0) as varchar)
  +' select '+@tablerow+' from '+@tablename
if @keyword is not null
  set @sql=@sql+' where '+@tablekeyrow+'='''+@keyword+''''
exec(@sql)
go

解决方案 »

  1.   

    服务器: 消息 156,级别 15,状态 1,行 1
    在关键字 'procedure' 附近有语法错误。
    服务器: 消息 137,级别 15,状态 1,行 10
    必须声明变量 '@rowcountbig'。
    服务器: 消息 137,级别 15,状态 1,行 12
    必须声明变量 '@keyword'。
    服务器: 消息 137,级别 15,状态 1,行 13
    必须声明变量 '@tablekeyrow'。高手啊,我把你的代码复制大查询分析器里面咋这样呢??
      

  2.   

    --建表:
    create table tbl_news(
    id int identity,
    title nvarchar(50),
    [datetime] nvarchar(50)
    )
    goinsert into tbl_news select 'asdfas',getdate()
    union all select 'asdf',getdate()
    union all select 'gsdg',getdate()
    union all select 'fgsdfg',getdate()
    union all select 'sdfg',getdate()
    union all select 'sdfg',getdate()
    union all select 'sgfsdg',getdate()
    union all select 'fdsg',getdate()--存储过程
    create procedure pr_getnews(
    @tablename nvarchar(50)=null,
    @tablerow nvarchar(100)=null,
    @number int
    )
    as
    declare @sql nvarchar(1000)
    select @sql='select top ' + cast(isnull(@number,0) as varchar) +  @tablerow + ' from ' + @tablename 
    execute(@sql)
    go--执行存储过程
    execute pr_getnews 'tbl_news', 'title,datetime', 3
      

  3.   

    create procedure [web104542].[selectnews]
    ——》
    create procedure [selectnews]