2015-03-03 91 views
0

我想解析从一个SQL BAK文件到一个表中的头信息,但是我收到以下错误。Uniqueidentifier与数字不兼容

消息206,级别16,状态2,行1个 操作数类型冲突:唯一标识符是与数字 消息3013,级别16,状态1,行1 不相容RESTORE FILELIST异常终止。

这是我写的脚本,但我不明白为什么我得到这个错误。

DECLARE @ HeaderInfo2表

(LogicalName nvarchar(128), 
PhysicalName nvarchar(128), 
Type   nvarchar(128), 
FileGroupName nvarchar(128), 
Size   numeric(25,0), 
MaxSize  numeric(25,0), 
FileId  int, 
CreateLSN  int, 
DropLSN  int, 
UniqueId  uniqueidentifier , 
ReadOnlyLSN int, 
ReadWriteLSN int, 
BackupSizeInBytes numeric(25,0), 
SourceBlockSize numeric(25,0), 
FileGroupId int, 
LogGroupGUID numeric(25,0), 
DifferentialBaseLSN numeric(25,0), 
DifferentialBaseGUID numeric(25,0), 
IsReadOnly int, 
IsPresent int, 
TDEThumbprint int 
) 

INSERT INTO @ HeaderInfo2 EXEC( 'RESTORE FILELISTONLY FROM DISK = N''I:\ DBTemp \ database.bak' ' WITH NOUNLOAD')

+0

三重检查源列 - 顺序和数据类型。一名嫌疑人是名为“DifferentialBaseGUID”的数字 - 是否正确? – 2015-03-03 13:44:18

+0

我不确定数据类型应该是什么。有没有办法根据以下查询的输出来确定数据类型应该是什么?恢复FILELISTONLY 从DISK = N'I:\ DBTemp \ database.bak' WITH NOUNLOAD – user36578 2015-03-03 13:49:43

回答

0

你的数据类型不正确。可以找到正确的数据类型here

Column name   Data type 
LogicalName   nvarchar(128) 
PhysicalName  nvarchar(260) 
Type    char(1) 
FileGroupName  nvarchar(128) 
Size    numeric(20,0) 
MaxSize    numeric(20,0) 
FileID    bigint 
CreateLSN   numeric(25,0) 
DropLSN    numeric(25,0)NULL 
UniqueID   uniqueidentifier 
ReadOnlyLSN   numeric(25,0) NULL 
ReadWriteLSN  numeric(25,0)NULL 
BackupSizeInBytes bigint 
SourceBlockSize  int 
FileGroupID   int 
LogGroupGUID  uniqueidentifier NULL 
DifferentialBaseLSN numeric(25,0)NULL 
DifferentialBaseGUID uniqueidentifier 
IsReadOnly   bit 
IsPresent   bit 
TDEThumbprint  varbinary(32) 
+0

谢谢你的工作! – user36578 2015-03-03 14:13:03