2015-03-03 85 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