我想写个 传入表名 得出该表有几条数据的一个函数.. 怎么写呢

msy_84 2010-05-31 03:58:27
exec ('select count (1) from'+ @tableName ) 这个的执行值能传出来吗? 怎么传啊
...全文
86 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
msy_84 2010-06-04
  • 打赏
  • 举报
回复
呵呵,发了两个重复贴,应该是不小心提交了两次吧,哈哈。不过既然发了,帖子还是要结的。。谢谢各位的帮忙。。 。。
永生天地 2010-06-01
  • 打赏
  • 举报
回复
create function f_test
(@tb varchar(10))
returns int
as
begin
declare @i int
select @i=rowcnt from dbo.sysindexes where id = object_id(@tb,'U') and indid=0
return @i
end
ShenLiang2025 2010-06-01
  • 打赏
  • 举报
回复


1)既然从sysindexes读取Rowcount,那么where id = object_id(@tb,'U')是多余的条件.
不过可以过滤传的参数是否是表.

2)and indid=0是堆的情况,如果有聚集索引呢?!

3)而简单的如下代码,也不对.得到的结果可能为0.因为sysindexes存的不仅仅是Index的信息,还有Statistics的信息.

begin
declare @i int
select @i=rowcnt
from dbo.sysindexes
where id = object_id(@tb,'U')
return @i
end

--4)改进后的.

CREATE FUNCTION ufn_TabCount
(@tb varchar(300))
RETURNS INT
AS
BEGIN
IF object_id(@tb,'U') IS NULL
BEGIN
RETURN -999999
END
DECLARE @i int
SELECT @i=rowcnt FROM sys.sysindexes ind
WHERE OBJECT_NAME(id) = @tb
AND OBJECTPROPERTY(id,'IsMSShipped') = 0
AND(indid = 1 OR indid = 0)
RETURN @i
END

5) 测试
PRINT dbo.ufn_TabCount('_tabDetails')
359

PRINT dbo.ufn_TabCount('tbl_Show')
-999999


htl258_Tony 2010-05-31
  • 打赏
  • 举报
回复
IF OBJECT_ID('[p_test]') IS NOT NULL
DROP PROC [p_test]
GO
CREATE PROC [p_test]
@tbname SYSNAME,
@cnt INT OUT
AS
DECLARE @sql NVARCHAR(4000)
SET @sql = N'SELECT @cnt = COUNT(1) FROM ['+@tbname+']'
EXEC sp_executesql @sql, N'@cnt INT OUT', @cnt OUT
GO


DECLARE @cnt INT
EXEC [p_test] tb,@cnt OUT
PRINT @cnt
/*
31
*/
存储过程的方式
水族杰纶 2010-05-31
  • 打赏
  • 举报
回复
为什么函数就实现不了?
dawugui 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 msy_84 的回复:]
exec ('select count (1) from'+ @tableName ) 这个的执行值能传出来吗? 怎么传啊
[/Quote]

http://topic.csdn.net/u/20100531/15/9646676a-4fda-405a-856d-d6a0b1022b9f.html?6152

3楼.

另:函数实现不了你的功能.

永生天地 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 msy_84 的回复:]
exec ('select count (1) from'+ @tableName ) 这个的执行值能传出来吗? 怎么传啊
[/Quote]
很明确的告诉你,在函数里是不能实现的
水族杰纶 2010-05-31
  • 打赏
  • 举报
回复
--函数
create function fn_name
(@tb varchar(10))
returns int
as
begin
declare @i int
select @i=rowcnt
from dbo.sysindexes
where id = object_id(@tb,'U')
return @i
end
chuifengde 2010-05-31
  • 打赏
  • 举报
回复
exec sp_executesql @sql,N'@count int out',@count int out
水族杰纶 2010-05-31
  • 打赏
  • 举报
回复
declare @count int
declare @sql nvarchar(1000)
select @sql='select @count=count (1) from'+ @tableName
exec sp_executesql @sql,N'@count int output',@count output
select @count
chuifengde 2010-05-31
  • 打赏
  • 举报
回复
declare @sql nvarchar(1000)
declare @count int

set @sql='select @count=count(1) from '+@tableName
exec sp_executesql @sql,N'@count int out',@count int
select @count
水族杰纶 2010-05-31
  • 打赏
  • 举报
回复

刚才回答了?
通过该课程的学习,掌握0行代码服务框架的服务发布,参数验证,代码生成功能,具备初步的使用能力 该项目本身设计的内容非常多,后期会逐步开放讲解框架后期内容参考:https://mp.csdn.net/editor/html/112142371与Springboot+mybatis和Springboot+jdbctemplate对比:https://editor.csdn.net/md/?articleId=106091083框架主要功能:生成自定义sql模板文件1.一键生成数据库所有列表增、删、改、查接口通过代码生成器,一键生成增、删、改、查代码,分为有代码和无代码两种方式。有代码方式可以在需要业务封装时直接调用生成的代码进行业务组装。有代码方式和无代码方式都可以直接调用访问。2.可指定单表生成接口可以指定生成那张表的数据接口,以免对已有接口造成影响。3.一键生成接口测试postman调用文件生成postman调用接口,直接导入即可测试,不需要单独也接口文档,也不需要使用swangger在代码中单独增加注释。字段长度类型,大小一目了然。4.可生成controller、service、dao、model、自定义sql、postman测试文件可以根据实际需要进行单独配置5.接口任意参数可自动配置多维度验证比如一个参数phone,在不需要编程的情况下,可以配置验证是否为空、长度、是否是电话号码6.数据接口可以任意组合形成新的接口比如、查询学校是一个接口、查询城市是一个接口,通常情况下在前端是需要两次请求,现在可以通过一次请求自动合并两个接口的数据结果,一次性返回。而这样的组合可以是无限个组合。7.所有接口参数均可自动封装比如查询省份接口,里面有10个参数,前端传入几个参数,便可自动封装几个参数。8.所有查询接口自带分页列表查询,有码方式和无码方式,均自带分页。9.通过简单sql的编辑即可完成服务发布只要会sql便可生成服务,不需要任何多余操作10.接口可以进行限流配置,可以根据ip、token、ak进行限流操作多维度自定义限流,可设置次数、时限、限流方式11.所有接口可以进行签名认证所有接口通过接口sign签名认证12.所有接口可以进行登录认证限制,也可单独配置不需要登录认证可以指定接口单独授权不需要登录验证,比如验证码接口13.所有接口均可设置需要验证码验证所有的接口都可以通过参数配置设置短信验证码和图片验证码14.所有查询接口均可单独设置缓存所有接口皆可设置单独缓存,缓存周期15.所有接口均可监控访问次数同一接口访问次数记录,很容易监控服务访问,可以做更细致的服务优化16.所有接口均可记录访问日志,包括请求来源请求参数、获得结果入参出参所有访问皆有详细记录17.项目中的代码可以进行自动统计代码量一键统计代码量,包括前后端代码行数和体积18.可以自动进行数据统计,可配置单表数据量统计、也可以配置定时任务数据统计自动表数据统计,方便做BI可视化报表,不需要开发直接配置即可19.可进行跨域设置跨域通过配置文件配置20.可进行IP禁用对于恶意访问ip进行封禁21.可进行访问次数限制所有接口可以进行访问次数限制22.可进行访问来源设备、应用检查验证验证请求来源所用设备和请求发起的应用

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧