简单的动态TSQL查询语法

简单的动态TSQL查询语法,第1张

简单的动态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可能是什么,或者类似的事情,我认为您正在以错误的方式进行处理,因为可以删除行,并且如果是标识列,则可以跳过值由于回滚。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4898303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存