关于存储过程中将表名设为参数的问题

sardineany 2010-06-30 09:46:25
我想实现的是,在存储过程中将表名作为一个参数,这个方法网上很多,能找到。也没什么问题
,但如果我要实现insert中将表名作为参数传递, 如果用字符串的连接方式,我的字段的类型将都会转化成char的,原来的字段类型都不能保存了,要怎么解决。。。(比如image列,int列什么的都将会转化为char的)
...全文
267 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
sardineany 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sql_hhy 的回复:]
引用 8 楼 sardineany 的回复:

SQL code
EXEC('insert into '+ @_TableName + '(FName,FileType,FileSize,FileUploader,Icon) values(' +@_FileName+','+@_FileType+','+@_FileSize+','+@_FileUploader+','+@_Upload……
[/Quote] 那您的意思?怎么解决。。请教一下。。
SQL_Hhy 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sardineany 的回复:]

SQL code
EXEC('insert into '+ @_TableName + '(FName,FileType,FileSize,FileUploader,Icon) values(' +@_FileName+','+@_FileType+','+@_FileSize+','+@_FileUploader+','+@_UploadDate+','+@_Icon + ')')
……
[/Quote]
为啥要用 exec?
sardineany 2010-06-30
  • 打赏
  • 举报
回复
等待高手啊。。也希望自己解决。。自己解决就散分啦。。
冷箫轻笛 2010-06-30
  • 打赏
  • 举报
回复
我来帮你顶
sardineany 2010-06-30
  • 打赏
  • 举报
回复
DDDD
sardineany 2010-06-30
  • 打赏
  • 举报
回复
DDD 回复太快,请先休息一下!
sardineany 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 coolingpipe 的回复:]
你有多少个表呢?
有个笨办法
SQL code


if(@TableName = 'Table1')
begin
insert into Table1 ....
end
if(@TableName = 'Table2')
begin
insert into Table2 ....
end



个人感觉可以先这样处理,项目进度没必要停留在个别技术问……
[/Quote]
这个开始就想过的。。如果真的很多很多呢。。怕有这种情况。。所以想写活了。。
水族杰纶 2010-06-30
  • 打赏
  • 举报
回复
先转换成2进制
然后转换成字符
然后插入
panzervor 2010-06-30
  • 打赏
  • 举报
回复
最好将表名存在一个单独的数据表中,这样再操作就会方便很多
nightmaple 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 coolingpipe 的回复:]
你有多少个表呢?
有个笨办法

SQL code


if(@TableName = 'Table1')
begin
insert into Table1 ....
end
if(@TableName = 'Table2')
begin
insert into Table2 ....
end



个人感觉可以先这样处理,项目进度没必要停留在个别技……
[/Quote]

这个必须顶
claro 2010-06-30
  • 打赏
  • 举报
回复
纯帮顶
冷箫轻笛 2010-06-30
  • 打赏
  • 举报
回复
你有多少个表呢?
有个笨办法


if(@TableName = 'Table1')
begin
insert into Table1 ....
end
if(@TableName = 'Table2')
begin
insert into Table2 ....
end


个人感觉可以先这样处理,项目进度没必要停留在个别技术问题上
有时间的话可以再优化修改一下

期待高手....
rucypli 2010-06-30
  • 打赏
  • 举报
回复
cast转类型
sardineany 2010-06-30
  • 打赏
  • 举报
回复
 EXEC('insert  into '+ @_TableName + '(FName,FileType,FileSize,FileUploader,Icon) values('  +@_FileName+','+@_FileType+','+@_FileSize+','+@_FileUploader+','+@_UploadDate+','+@_Icon +  ')')


这么写的话,后面的数据类型都不能保存原来的了
wujinyuan 2010-06-30
  • 打赏
  • 举报
回复
看看sp_executesql帮助
ChinaJiaBing 2010-06-30
  • 打赏
  • 举报
回复

图片,可以存路径..
ChinaJiaBing 2010-06-30
  • 打赏
  • 举报
回复

动态sql
exec ('select 1')
wujinyuan 2010-06-30
  • 打赏
  • 举报
回复
image列有点难..占位学习
SQL77 2010-06-30
  • 打赏
  • 举报
回复
但如果我要实现insert中将表名作为参数传递, 如果用字符串的连接方式,我的字段的类型将都会转化成char的,原来的字段类型都不能保存了,要怎么解决。。。(比如image列,int列什么的都将会转化为char的)

谁说都变成CHAR类型了
sardineany 2010-06-30
  • 打赏
  • 举报
回复
求高手解答。。
加载更多回复(9)

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧