CREATE function GetID(@tbName varchar(50)) returns varchar(8000) as begin declare @ReturnValue varchar(8000) Select @Returnvalue=id,title from '+@tbName--用不用動態語句也一樣出錯 ----因為你這裡返回的不是一個varchar型,而是返回一個列值 return(@ReturnValue) end
有個轉換的方法: CREATE function GetID(@tbName varchar(50)) returns varchar(8000) as begin declare @ReturnValue varchar(8000) set @ReturnValue='' select @ReturnValue=@ReturnValue+ID+',' from Quotename(@tbName)return(@ReturnValue) end ---不知道是不是你所想要的
对不起,刚才大意了~~~
----------
Exec('Select '+@Returnvalue+'=id,title from '+@tbName)
这样也不行.
你没病吧哈哈~~~~~函数中能不能用exec我不知道,但我要用的话(如果非用不可的话),我会先写存储过程,然后再用函数去调用.
returns varchar(8000)
as
begin
declare @ReturnValue varchar(8000)
Select @Returnvalue=id,title from '+@tbName--用不用動態語句也一樣出錯
----因為你這裡返回的不是一個varchar型,而是返回一個列值
return(@ReturnValue)
end
CREATE function GetID(@tbName varchar(50))
returns varchar(8000)
as
begin
declare @ReturnValue varchar(8000)
set @ReturnValue=''
select @ReturnValue=@ReturnValue+ID+',' from Quotename(@tbName)return(@ReturnValue)
end
---不知道是不是你所想要的
Re:有点,呵呵.
--------------------------------
函数中能不能用exec我不知道,但我要用的话(如果非用不可的话),我会先写存储过程,然后再用函数去调用.
Re:如果每一个动态语句都得用一个存储过程,那不就惨了.
-------------------------------------------------------------------------------To:talantlee(有了女朋友,就要更加努力)
Select @Returnvalue=id,title from '+@tbName--用不用動態語句也一樣出錯
----因為你這裡返回的不是一個varchar型,而是返回一個列值
Re:Id不一定为Int型,这是Function返回值不一定就是Int型啊~~~
select @ReturnValue=@ReturnValue+ID+',' from Quotename(@tbName)
Re:Quotename 这是什么来着...
还有就是如果不是涉及到对象名做参数就不要用动态语句。还有就是动态语句尽量写到一个存储过程
中,也就是用一个标示位来区分过程中的动态语句
返回带有分隔符的 Unicode 字符串
语法
QUOTENAME ( 'character_string' [ , 'quote_character' ] )