我有一个包含VARBINARY(MAX)
数据类型列的表。该列表示我的c#DB图层类中不同类型的不同值。它可以是:int
,string
和datetime
。现在我需要按照它的类型将一列转换为三列。因此,int
类型的值会转到新列ObjectIntValue
,依此类推每个新列。
但我在将数据传输到datetime
列时遇到问题,因为旧列包含datetime
值作为long
从C#DateTime.ToBinary
方法收到的数据,同时保存数据。
我应该在TSQL中使用它,并且不能使用.NET在新列中转换该值。你有什么想法吗?
感谢您的任何建议!
答案 0 :(得分:0)
在T_SQl中使用CLR
基本上你使用Create Assembly在你的函数中注册dll, 然后创建一个用户定义的函数来调用它,然后就可以使用它了。 有几个规则取决于你想要做什么,但基本上你只需要DateTime.FromBinary(),不应该太难以弄明白。
从未自己做过,但这些家伙似乎知道他们在谈论什么
这是一次性转换权吗?您对@schglurps的回应有点令人担忧。
如果我找到你,你的更新脚本就必须中断,也就是你实施这个chnage时你需要做的那个,那么你有一个关闭这个manouevre的程序,那么你将从一个新版本。
如果您想验证它,只需检查新列的存在或不存在。
其他选项是编写一个wee应用程序,该应用程序填充旧列中的新列并调用它。啊...
如果这不是一个关闭而你想保留和维护旧列,那么你就会遇到问题。