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

存储过程问题

shizhusz110 发布于 2007-11-04 21:40, 937 次点击

ALTER proc [dbo].[GetAllForByFiled]
(
@table nvarchar(30),
@filed nvarchar(30),
@condition nvarchar(30)
)
as

declare @tableName varchar(30),@sql varchar(1000)
set @tableName =@table
set @sql='select * from '+@tableName+ ' where ' + @filed + ' = ' + @condition
exec(@sql)
return
我想问下 我这个存储过程那里有错????
我将@table 附值老说他附近有语法错误.
新手不怎么回!
谢谢

7 回复
#2
purana2007-11-05 09:16
create proc [dbo].[GetAllForByFiled]
(
@table nvarchar(30),
@filed nvarchar(30),
@condition nvarchar(30)
)
as

declare @tableName nvarchar(30),@sql varchar(1000)
set @tableName =@table
set @sql='select * from '+@tableName+' where '+@filed+'=' +@condition
exec(@sql)
go


exec [dbo].[GetAllForByFiled] N'Orders',N'EmployeeID',5

drop proc [dbo].[GetAllForByFiled]
#3
shizhusz1102007-11-05 20:16
exec [dbo].[GetAllForByFiled] N'Orders',N'EmployeeID',5
想这样的话那不是参数不能外部传入哦
#4
purana2007-11-05 20:45
我只是用来测试而已..你想传入..你就传入咯.
#5
shizhusz1102007-11-06 14:24
哦 !thanks!
#6
晟翔2007-11-06 22:15
condition是什么类型?如果是char则需要加上引号:

......+ '''' + CONDITION + ''''
#7
DasayHaoEr2007-11-08 19:20
nvarchar类型赋值给varchar时,应该能自动转换的吧?
#8
shizhusz1102007-11-11 19:30
谢谢!的确这样很难确定字段类型!
1