特急!!!!!!!!
set rowcount 100
select * from item1()
ITem1()是我的自定义函数,返回一个表,其内容形式如下:
CREATE FUNCTION Item_1(@ItemNo varchar(20))
RETURNS @Item TABLE
(
DEA001 varchar(20), -- 品号 8
DEA002 varchar(60), -- 品名
DEA036 varchar(20), -- 快捷码
DEA003 varchar(4 ), -- 库存单位
DEA008 varchar(6 ), -- 主要仓库
DED003C varchar(12), -- 商品分类类别
DED003A varchar(12), -- 会计分类类别
DEA013 varchar(1 ), -- 注销
DEA018 int, -- 前置天数
DEA022 numeric(14,6), -- 标准进价
DEA023 numeric(14,6), -- 最近进价
DEA024 numeric(14,6), -- 零售价
DEA025 numeric(14,6), -- 定价一
DEA026 numeric(14,6), -- 定价二
DEA027 numeric(14,6), -- 定价三
DEA028 numeric(14,6), -- 定价四
DEA010 varchar(10), -- 主供应商
DEA007 varchar(1 ), -- 计算库存
DEA011 varchar(4 ) , -- 循环盘点码
DEA005 varchar(6 ), --商品分类
DEA006 varchar(6 ) --会计分类
)
AS
BEGIN
insert @Item
select DEA001, DEA002, DEA036, DEA003, DEA008,
CLASS.DED003 DED003C, ACCT.DED003 DED003A,
DEA013, DEA018, DEA022, DEA023, DEA024, DEA025,
DEA026, DEA027, DEA028, DEA010, DEA007, DEA011,
DEA005, DEA006
from TPADEA
left join TPADED as CLASS on DEA005=CLASS.DED002 and CLASS.DED001= '0 '
left join TPADED as ACCT on DEA006=ACCT.DED002 and ACCT.DED001= '1 '
where DEA001 > = @ItemNo
if @@ROWCOUNT <= 0
insert @Item
select DEA001, DEA002, DEA036, DEA003, DEA008,
CLASS.DED003 DED003C, ACCT.DED003 DED003A,
DEA013, DEA018, DEA022, DEA023, DEA024, DEA025,
DEA026, DEA027, DEA028, DEA010, DEA007, DEA011,
DEA005, DEA006
from TPADEA
left join TPADED as CLASS on DEA005=CLASS.DED002 and CLASS.DED001= '0 '
left join TPADED as ACCT on DEA006=ACCT.DED002 and ACCT.DED001= '1 '
where DEA036 > = @ItemNo
RETURN
END
我现在不想让set rowcount 100 对ITem1()函数里面的select语句起作用,该怎么做??
特急!!!!
请天下大侠,帮在下一下下!!!
在此先谢过了!!!
[解决办法]
不知主是不是意思啊?
[解决办法]
--第一种方法
declare @sql varchar(8000),@行数 int
set @行数=10
set @sql = 'select top ' + cast(@行数 as varchar(100)) + ' * from dbo.item1() '
print @sql
exec (@sql)
--第二种方法
declare @sql varchar(8000),@行数 int
set @行数=10
set @sql = ' set rowcount ' + cast(@行数 as varchar(100)) + ' select * from dbo.item1() '
print @sql
exec (@sql)