declare @id int
execute getLastRaw 'subjectID','tblSubject', @id output
print @id
alter procedure getLastRaw @column char(20), @tbl Char(20),
@return int output
as
declare @dynSQL varchar(100)
select @dynSQL ='SELECT TOP 1 '[email protected]+'='+ @column + ' FROM ' + @tbl + ' ORDER BY ' + @column + ' DESC'
exec(@dynsQL)
我想获取从select语句中选择的值。但它说:当在SQL中给出表名,列时如何检索特定值过程
Msg 245, Level 16, State 1, Procedure getLastRaw, Line 5
Conversion failed when converting the varchar value 'SELECT TOP 1 ' to data type int.
欢迎来到本网站。请记住阅读本网站的工作方式:http://meta.stackexchange.com/q/7237/27535 – gbn 2011-06-15 18:04:57
您需要阅读:http://www.sommarskog.se/index.html如果您要继续使用动态SQL。当我看到有人想要传递表和列名时,我知道他们正在做的事情可能会在他们的系统中造成麻烦。在数据库中泛化是一件坏事。这个链接也可能有帮助:http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/ – HLGEM 2011-06-15 18:13:51