在sqlserver2008 自定义函数的时候,在查询的时,表名如何用变量代替?

我想达到这种效果:CREATEFUNCTION[dbo].[CountFlightNOaaaa](@Idchar(50))RETURNSvarchar(1024)ASBE... 我想达到这种效果:
CREATE FUNCTION [dbo].[CountFlightNOaaaa]
(
@Id char(50)
)
RETURNS varchar(1024)
AS
BEGIN
declare @Str varchar(1024)
declare @table varchar(100)
set @Str = ''
set @table = N'ForeignTicketSW'+CONVERT(VARCHAR(6), DATEADD(MM, 0, GETDATE()), 112)
select @Str = @Str +'&'+ FlightNO from @table
where ForeignOrderKeyID = @Id
return @Str
END

GO

因为表名是不定的。

现在报
必须声明表变量 "@table"。
展开
 我来答
zhang399401
2013-10-29 · TA获得超过702个赞
知道小有建树答主
回答量:1347
采纳率:0%
帮助的人:926万
展开全部
试试这个
DECLARE @fname VARCHAR(20)
SET @fname = 'AccountName' --设置表字段
DECLARE @table Nvarchar(1000)
SET @table = 'SELECT ' + @fname + ' FROM Account'
Exec(@table)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen3002min
2013-10-28 · TA获得超过262个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:160万
展开全部
拼接好sql后用,exec执行
追问
拼接后,set @sql = 'select '+@returnItem+' =  Passengers from ForeignTicket201310 where ForeignOrderKeyID='+@id

@returnItem这个变量又是问题,它为空,不能装查询出来的Passengers 数据啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式