Sql-Server-2012
我無法用 PDF 辨識此表中發生的情況
我有一個帶有這個配置的表:
現在,如果您查看 COLUMN_11,它是一個 varchar -1。
但據我所知,要將 PDF 文件插入表中,您需要文件流,並且列應該是 VARBINARY(max) 對嗎?
那麼,這是如何工作的?為什麼 VARCHAR 列中有 PDF?
DocumentBody 是這樣的:
顯然,有數百萬這個。
當您看到
-1
aVARCHAR
或NVARCHAR
數據類型的值時,這只是.NET SQLDBTYPEMAX
的數字表示,如此處所述。因此,看起來應用程序可能只是將 PDF 的序列化編碼字元串表示形式儲存在數據庫中的
VARCHAR(MAX)
列中。我假設設計這個的開發人員認為這是儲存 PDF的最簡單
VARBINARY(MAX)
方法,而不是,這樣可以節省空間(正如 Dan Guzman 在評論中指出的那樣)。此外,實際上最好的做法是不要將文件本身儲存在數據庫中,而是將文件儲存在某個文件系統上,並將對該文件的位置引用儲存在數據庫中。