如何使用二进制编写器为 Money 数据类型编写正确的 MS SQL 原生格式?
我想在 .net 中取一个值,从文件中读取为十进制数的字符串表示形式(实际上是从 SQL 导出的“Money”数据类型,但这并不重要)。
如何使用二进制写入器写入值,以便您可以在本机格式模式下使用 BCP 或 BULK INSERT 成功读取值?
如何使用二进制编写器为 Money 数据类型编写正确的 MS SQL 原生格式?
我想在 .net 中取一个值,从文件中读取为十进制数的字符串表示形式(实际上是从 SQL 导出的“Money”数据类型,但这并不重要)。
如何使用二进制写入器写入值,以便您可以在本机格式模式下使用 BCP 或 BULK INSERT 成功读取值?
(其中 w 是先前实例化的二进制写入器)
Dim dec = CDec(aString)
Dim lng = CLng(dec * 10000)
Dim bytes = BitConverter.GetBytes(lng)
w.Write(bytes(4))
w.Write(bytes(5))
w.Write(bytes(6))
w.Write(bytes(7))
w.Write(bytes(0))
w.Write(bytes(1))
w.Write(bytes(2))
w.Write(bytes(3))
可能有更清洁或更好的方法,但这似乎没问题
提醒一下,这种格式仅适用于 NON NULL 货币列,我认为你必须先写一个长度字节或类似的东西才能用于可空货币列
我不记得如何使用 BCP 对分隔文件中的数字类型执行空值,但我相信如果您使用长度前缀文件,长度值 -1 表示空值。