在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"。 展开
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"。 展开
2个回答
展开全部
试试这个
DECLARE @fname VARCHAR(20)
SET @fname = 'AccountName' --设置表字段
DECLARE @table Nvarchar(1000)
SET @table = 'SELECT ' + @fname + ' FROM Account'
Exec(@table)
DECLARE @fname VARCHAR(20)
SET @fname = 'AccountName' --设置表字段
DECLARE @table Nvarchar(1000)
SET @table = 'SELECT ' + @fname + ' FROM Account'
Exec(@table)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询