在SQL Server中存储比赋值列更多的字符。

我可以做这样的事情,列的类型是 nchar(8)但我想存储在表中的字符串比这个长。

我之所以这样做,是因为我想从一个表转换到另一个表。表A是 nchar(8) 和表B是 nvarchar(100). 我想把表B中的所有字符转移到表A中,不遗漏任何一个字符。

解决方案:

如果nvarchar(100)中只包含长度不超过16个字符的拉丁字符,那么可以将nvarchar(100)挤进nchar(8)中。

declare @t table
(
col100 nvarchar(100),
col8 nchar(8)
);

insert into @t(col100) values('1234567890123456');

update @t
set col8 = cast(cast(col100 as varchar(100)) as varbinary(100))

select *, cast(cast(cast(col8 as varbinary(100)) as varchar(100)) as nvarchar(100)) as from8to100_16charsmax
from @t;

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Python 3.4 - 使用SAPI进行文本到语音转换

2022-5-11 15:00:34

解决方案

当我试图更新它时,PIP说它是最新的,但随后它就不是了。

2022-5-11 15:00:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索