당신이 DAC (액세스 할 수있는 경우 전용 관리자 콘솔을 ), 당신을 위해, 식별 컬럼의 값을 검사 할 수 있습니다 INT
보고, 열 idtval
에서 열 sys.syscolpars
.
관련 질문에 대한 Roi Gavish의 유용한 답변 을 통해 저를 그 테이블로 안내해 주신 Martin Smith 에게 감사드립니다 .
예를 들어 다음 임시 테이블을 보자.
USE tempdb;
CREATE TABLE #d
(
ID INT NOT NULL IDENTITY(1,1)
);
TRUNCATE TABLE #d;
DBCC CHECKIDENT ('#d',RESEED, 2147483635);
INSERT INTO #d DEFAULT VALUES;
테이블에 무엇이 포함되어 있는지 봅시다 :
SELECT *
FROM #d;
+------------+
| ID |
+------------+
| 2147483635 |
+------------+
이 코드로 식별 값을 검사 할 수 있습니다.
DECLARE @idtval VARBINARY(64);
SELECT @idtval = scp.idtval
FROM sys.syscolpars scp
INNER JOIN sys.objects o ON scp.id = o.object_id
WHERE o.name LIKE '#d____%'
DECLARE @LittleEndian NVARCHAR(10);
SET @LittleEndian = LEFT(sys.fn_varbintohexstr(@idtval), 10);
SELECT @LittleEndian;
DECLARE @BigEndian NVARCHAR(10) = '0x';
DECLARE @Loop INT = 0;
WHILE @Loop < 4
BEGIN
SET @BigEndian = @BigEndian + SUBSTRING(@LittleEndian, ((4 - @Loop) * 2) + 1, 2);
SET @Loop += 1;
END
SELECT CurrentIdentityValue = CONVERT(INT,
CONVERT(VARBINARY(32), @BigEndian, 1), 2);
+----------------------+
| CurrentIdentityValue |
+----------------------+
| |
| 2147483635 |
+----------------------+
를 들어 BIGINT
ID 열, 우리는 다음과 같은 코드에서 사용되는 일부 변수의 크기를 확장 할 필요가 :
CREATE TABLE #dBig
(
ID BIGINT NOT NULL IDENTITY(1,1)
);
TRUNCATE TABLE #dBig;
DBCC CHECKIDENT ('#dBig',RESEED, 9223372036854775704);
INSERT INTO #dBig DEFAULT VALUES;
SELECT *
FROM #dBig;
DECLARE @idtval VARBINARY(64);
SELECT @idtval = scp.idtval
FROM sys.syscolpars scp
INNER JOIN sys.objects o ON scp.id = o.object_id
WHERE o.name LIKE '#dBig____%'
DECLARE @LittleEndian NVARCHAR(18);
SET @LittleEndian = LEFT(sys.fn_varbintohexstr(@idtval), 18);
DECLARE @BigEndian NVARCHAR(18) = '0x';
DECLARE @Loop INT = 0;
WHILE @Loop < 8
BEGIN
SET @BigEndian = @BigEndian + SUBSTRING(@LittleEndian, ((8 - @Loop) * 2) + 1, 2);
SET @Loop += 1;
END
SELECT CurrentIdentityValue = CONVERT(BIGINT,
CONVERT(VARBINARY(32), @BigEndian, 1), 2);
에 대한 결과 BIGINT
:
+----------------------+
| CurrentIdentityValue |
+----------------------+
| |
| 9223372036854775704 |
+----------------------+