VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 781|回复: 6

一个存储过程问题?

[复制链接]

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-20 20:00:02 | 显示全部楼层 |阅读模式
我准备写一个存储过程,达到输出任意的表的N个记录
但是始终行不通,在需要传递参数的存储过程中 就还没有成功过 那位大虾帮看看
create proc SkyCms
@TableName VARCHAR(200),
@RowNumber int
As
declare @TSql varchar(100)
Set @Tsql="Select Top "+@RowNumber+" From "+@TableName
Exec(@Tsql)
go
回复

使用道具 举报

0

主题

35

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-6-26 11:45:01 | 显示全部楼层
--试试
create proc SkyCms
@TableName VARCHAR(200),
@RowNumber int
As
declare @TSql varchar(8000)
Set @Tsql='Select Top '+convert(varchar(8000),@RowNumber)+'* From '+ @TableName
Exec(@Tsql)
go




回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-27 13:00:01 | 显示全部楼层
--try

create proc SkyCms
@TableName VARCHAR(200),
@RowNumber int
As
declare @TSql varchar(8000)
Set @Tsql='Select Top '+rtrim(@RowNumber)+' * From '+@TableName
Exec(@Tsql)
go
回复

使用道具 举报

0

主题

35

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-6-27 18:45:01 | 显示全部楼层
RTRIM
截断所有尾随空格后返回一个字符串。

学习,呵呵。
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-27 20:15:01 | 显示全部楼层
在以上SQL中的目的是转换数据类型
回复

使用道具 举报

0

主题

10

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-6-28 17:00:01 | 显示全部楼层
create proc SkyCms
@TableName VARCHAR(200),
@RowNumber int
As
declare @TSql varchar(8000)
Set @Tsql='Select Top '+rtrim(@RowNumber)+' * From '+@TableName
Exec(@Tsql)
go
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-6-29 00:30:01 | 显示全部楼层
对了。。
1、原来的@RowNumber是int型变量,跟目标串连接时,要转换成char()之类的类型再操作;
2、原先少了表列。。*
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表