34,576
社区成员
发帖
与我相关
我的任务
分享
函数应该改成这样
CREATE FUNCTION getnamebyid(@tablename varchar(20) , @id int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @name1 nvarchar(50)
declare @sql nvarchar(100)
set @sql = 'select @name= name from ' + @tableName + ' where id = ' + @id
exec sp_executesql @sql,N'@name varchar(50) output',@name1 output
RETURN(@name1)
END
create proc wsp
@tablename varchar(20),
@id int
AS
BEGIN
declare @count int
declare @sql nvarchar(1000)
set @sql='select @num=count(1) from dbo.sysobjects where id = object_id('''+ @tablename +''')'
exec sp_executesql @sql,N'@num int output',@count output
if(@count<1)
begin
select '您输入的表名不存在' as name
end
else
begin
print 'a'
set @sql ='select name [name] from ' + @tablename + ' where id = ' + cast(@id as varchar)
exec(@sql)
end
END
调用:exec wsp 'asdfdsa',3