SQL SERVER 2005,表值函数里面可以写动态SQL吗?因为我的表是不固定的,如2006年的销售数据和2007年的销售数据分别存在sales_2006和sales_2007表中
前提是我一定要用表值函数,我写的如下:CREATE FUNCTION [dbo].[GetSales]
(
-- Add the parameters for the function here
@Year char(4)
)
RETURNS TABLE
AS
return
(
begin
declare @Sql varchar(1000) set @Sql = 'select product,qty,value from sales_' + @Year exec(@Sql) end
)编译的时候在declare处老是报语法错误,可以这样写吗?可以在表值函数里写动态SQL吗?
在线等!
前提是我一定要用表值函数,我写的如下:CREATE FUNCTION [dbo].[GetSales]
(
-- Add the parameters for the function here
@Year char(4)
)
RETURNS TABLE
AS
return
(
begin
declare @Sql varchar(1000) set @Sql = 'select product,qty,value from sales_' + @Year exec(@Sql) end
)编译的时候在declare处老是报语法错误,可以这样写吗?可以在表值函数里写动态SQL吗?
在线等!
解决方案 »
- SQL建表求助!!!
- 如何新建這樣的視圖(View) 在線待
- 请教sql-server中的错误处理方法
- 请教一个sql server设置问题
- 请教各路英雄,如何在把自定义的视频文件写入字段中?(在线等待)
- 在SQL server 数据库中的一个表的smalldatetime字段的默认值中用什么函数才能使一项纪录写入该表时该日期字段的值为写入时主机上的时间?给分--50
- 这个触发器该如何写?
- 急死人了,我的OracleServer运行两天后又出问题了,请各位高手指点迷津。
- window server 2008删除域控后,SQLserver变得可以用sa登陆却不能用window身份登陆
- 没有索引,怎么能做到让查询结果的顺序和插入时的顺序一致?
- int 和 varbinary 可以互换吗
- 不同服务器数据库之间的数据操作 的 连接问题
不能
create proc [GetSales]
@Year varchar(10)
as
exec('select product,qty,value from sales_' + @Year )
(
-- Add the parameters for the function here
@Year char(4)
)
RETURNS @t TABLE(product varchar(32), qty varchar(32), value varchar(32))
AS
begin
if @Year='2006'
insert @t select product,qty,value from sales_2006
else
insert @t select product,qty,value from sales_2006
return
end
go
CREATE FUNCTION [dbo].[GetSales]
(
-- Add the parameters for the function here
@Year char(4)
)
RETURNS @t TABLE(product varchar(32), qty varchar(32), value varchar(32))
AS
begin
if @Year='2006'
insert @t select product,qty,value from sales_2006
else
insert @t select product,qty,value from sales_2007
return
end
go
我有15年的数据,是不是要写15个if else啊?