Scripts sql (maintenance)
De Wiki1000
(Différences entre les versions)
(Page créée avec « ===RootOID=== Retourne le max des racines d'OID d'une base de données avec OID caractères. <pre> DECLARE @SQL nvarchar(max) DECLARE @TableName sysname DECLARE @TableUI... ») |
(→RootOID) |
||
| Ligne 45 : | Ligne 45 : | ||
DEALLOCATE tables_cursor | DEALLOCATE tables_cursor | ||
</pre> | </pre> | ||
| + | |||
| + | {{tip|La valeur de RootOID est stockée dans la séquence "RootOID" de la base}} | ||
[[Category:Base de données]] | [[Category:Base de données]] | ||
Version actuelle en date du 27 novembre 2023 à 09:41
RootOID
Retourne le max des racines d'OID d'une base de données avec OID caractères.
DECLARE @SQL nvarchar(max)
DECLARE @TableName sysname
DECLARE @TableUID int
DECLARE @RootOID int
DECLARE @MaxUID int
DECLARE @MaxTableName sysname
SELECT @MaxUID = 0
SELECT @RootOID = cValue from sysCounter where cName='RootOID'
DECLARE tables_cursor CURSOR FAST_FORWARD
FOR
select t.name from sys.all_columns c
join sys.tables t on t.object_id = c.object_id
where c.name='oid'
OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @SQL = 'select @TableUID = MAX(convert(INT, CONVERT(VARBINARY,''0x''+SUBSTRING(oid,21,8),1) )) from '+ @TableName
EXEC sp_executesql @SQL, N'@TableUID int OUTPUT, @TableName varchar', @TableUID OUTPUT, @TableName = @TableName
IF (@TableUID > @MaxUID )
BEGIN
SELECT @MaxUID=@TableUID
SELECT @MaxTableName = @TableName
END
FETCH NEXT FROM tables_cursor INTO @TableName
END
SELECT @MaxTableName, @MaxUID, @RootOID
CLOSE tables_cursor
DEALLOCATE tables_cursor
| Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |