我正在尝试编写一个函数,它将 varbinary(max) 字段拆分为一个具有 16 字节 GUID 的表,但我正在努力。我无法找到有关如何使用 varbinaries 执行此操作的任何示例或演练 - 因此感谢任何帮助。我尝试拆分的 varbinary 字段中的数据示例是:
0x09B57E7B1E19CD448698ECDA170B080F7C98FD411E5D264EB6D83AD6D4067C0D336E73299D2408438B625B09BED408D2D8E6C6DE4310194ABD90CF90F1558838731B2B740B508E44843FA98125ADF599669FC433BD4C074294C64E13D880A3ED78D25157C1E7A946B5B9C78E8DA0B5A8ECA73BB5CE59E6439586C445F25F2CDCA2B69483A7AE184A922DBC895C2EEB47910B88E915B7B94FB0EFC84568E2C83F0EF3168F62B6CB4EBA849486164F6DA7805C85383FBF694DB606904E0BA1364DC2DECDC1D00DED4BA28D0F1AA3DD9D1E1AA98697B914924995A26512C7EBD7C1
Run Code Online (Sandbox Code Playgroud)
谢谢
如果您有数字表,这很容易。以下示例是从 Erland Sommarskog 的站点剪切和粘贴的:
CREATE FUNCTION fixbinary_single(@str varbinary(MAX))
RETURNS TABLE AS
RETURN(SELECT listpos = n.Number,
n = convert(int, substring(@str, 4 * (n.Number - 1) + 1, 4))
FROM Numbers n
WHERE n.Number <= datalength(@str) / 4 )
Run Code Online (Sandbox Code Playgroud)