0
當我運行在管理工作室此命令:如何將查詢的消息結果插入到sql中的#temptable中?
DBCC CHECKIDENT ('TBL_NAME', RESEED, 0);
輸出是:
檢查標識信息:當前標識值 '0',當前列值 '0'。
DBCC執行完成。如果DBCC打印錯誤消息,請聯繫您的系統管理員。
我想得到那個輸出並將它插入#temptable
,有什麼想法?
當我運行在管理工作室此命令:如何將查詢的消息結果插入到sql中的#temptable中?
DBCC CHECKIDENT ('TBL_NAME', RESEED, 0);
輸出是:
檢查標識信息:當前標識值 '0',當前列值 '0'。
DBCC執行完成。如果DBCC打印錯誤消息,請聯繫您的系統管理員。
我想得到那個輸出並將它插入#temptable
,有什麼想法?
如果你的目的是要獲得最新生成的標識爲一個特定的表,並將其存儲到一個臨時表,從SQL Server 2008 R2開始,你可以使用IDENT_CURRENT函數是這樣的:
SELECT IDENT_CURRENT('TBL_NAME') AS CurrentIdentity
INTO #temptable
對於早期版本的SQL Server,你可以訪問
SELECT IC.last_value AS CurrentIdentity
INTO #temptable
FROM sys.identity_columns IC
INNER JOIN sys.objects O ON IC.object_id=O.object_id
WHERE O.object_id=OBJECT_ID('TBL_NAME')
捕獲DBCC或任何其它存儲過程的打印輸出,可以通過這樣的OutputBuffer中功能很多侷限性:
DBCC CHECKIDENT ('TBL_NAME', RESEED, 0);
CREATE TABLE #temptable TABLE ([Buffer] NVARCHAR(MAX))
INSERT @output
EXEC ('DBCC OUTPUTBUFFER(@@SPID)')
SELECT * FROM #temptable
我會強烈摒棄使用OUTPUTBUFFER,除了排除故障。
可能重複的[如何捕捉一個DBCC語句的輸出在一個臨時表中](http://stackoverflow.com/questions/5946813/how-to-catch-the-output-of-a-dbcc-聲明-IN-A-不是Temptable) –