如何解决声明可变字符长度
我的表格如下所示:
姓名 | 深度 | IsFile |
---|---|---|
GMES9604U 1.10 770 CFM-2135.csv | 1 | 1 |
当我声明我的变量时,只存储了名称的一部分:
declare @filename222 varchar(max)
SET @filename222 = CAST((
SELECT Top 1 Name
FROM #MyFiles
) AS Varchar)
print(@filename222)
Result Messages:
GMES9604U 1.10 770 CFM-2135.cs
我想知道如何将整个 Name 作为我的变量。谢谢!
解决方法
你为什么要对 varchar
进行大小写?在 SQL Server 中,永远不要使用没有长度的字符串声明。但是显式转换是不必要的。
只需使用:
SELECT Top 1 @filename222 = Name
FROM #MyFiles ;
varchar
的默认长度——在没有长度的情况下使用时——取决于上下文。您可以使用显式 cast()
,但您会使用 varchar(max)
。
您表中的名称列定义为什么?它也是<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="inserts">
</div>
还是定义为VARCHAR(MAX)
如果您已经在表中拥有该值,则应将该变量声明为相同的数据类型,这样您就永远不会遇到截断问题。
您的问题很可能源于这样一个事实,即未为 VARCHAR(<some number>)
声明添加值时的默认值为 1 或 30(请参阅 https://sqlblog.org/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。