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) –