栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

简单的动态TSQL查询语法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单的动态TSQL查询语法

DECLARE @sql NVARCHAr(255);

DECLARE @toStart INT;SET @sql = N'SELECt @toStart = COUNT(ID) FROM ' + QUOTENAME(@tempTableName);EXEC sp_executesql @sql, N'@toStart INT OUTPUT', @toStart OUTPUT;PRINT @toStart;

但是,如果您可以忽略当前的进行中的事务(并且您使用的是SQL Server 2005或更高版本,请在询问问题时指定版本),这是一种更轻松,更有效的方法。

DECLARE @toStart INT;SELECt @toStart = SUM(rows)   FROM sys.partitions  WHERe [object_id] = OBJECT_ID(@tempTableName)  AND index_id IN (0,1);PRINT @toStart;

仅出于完整性考虑,以下是SQL Server2000的解决方案,该解决方案也不需要任何特殊特权(只需connect和public成员):

DECLARE @toStart INT;SELECt @toStart = [rows]   FROM sysindexes  WHERe id = OBJECT_ID(@tempTableName)  AND indid IN (0,1);PRINT @toStart;

就是说,如果您使用计数来确定下一个ID可能是什么,或者类似的事情,我认为您正在以错误的方式进行处理,因为可以删除行,并且如果是标识列,则可以跳过值由于回滚。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号