注册 登录
编程论坛 SQL Server论坛

求一个sql语句

shizhusz110 发布于 2007-11-17 20:24, 675 次点击
我想把表名和表的字段都当参数传进存储过程怎么写??
本来自己写了个,出现了个郁闷的错误.有些表行有些表的字段查不到.
特别来讨个回去对比下.
谢谢!
6 回复
#2
purana2007-11-17 20:43

create proc p_Test
@tbname sysname,
@value int
as
declare @sql varchar(8000)
set @sql='select * from ['+@tbname+'] where fdname='+@value
exec (@sql)
go

字段的类型不同..需要做不同的处理..这个自己写.

#3
shizhusz1102007-11-17 21:06

谢谢您的回复.那怎么获得某个字段的类型呢??

#4
purana2007-11-17 21:20
将syscolumns表和systypes表结合查询.
#5
shizhusz1102007-11-17 21:25
我问的是您的fname也是sysname类型吗value也是吗??
#6
shizhusz1102007-11-17 21:27
alter proc A_AssetFind
(
@table sysname,
@filed sysname,
@value sysname
)
as
declare @sql nvarchar(1000)
set @sql = 'select * from [' + @table +'] where ['+@filed+']= ' +@value
exec(@sql)
go
这样怎么有错??
#7
XieLi2007-11-19 08:45
alter proc A_AssetFind
(
@table sysname,
@filed sysname,
@value sysname
)
as
declare @sql nvarchar(1000)
set @sql = 'select * from [' + @table +'] where '+@filed+'= ' +@value
exec(@sql)
go
1