dav*_*veb 4 sql sql-server types type-conversion
我有一个 SQL Server 表,其中包含varchar(50)使用 SQL Server 导入向导进行 CSV 导入的结果类型的列。
我想知道如何更改此数据类型nvarchar(9)而不出现 SQL Server 截断错误。
我尝试进行批量更新来设置我需要的数据类型和列大小,但当我尝试将 csv 加载到我创建的空数据库表(带有我需要的所需数据类型)时,仍然出现截断错误消息。
感谢您的任何帮助。
由于您愿意丢失数据,并且 nvarchar 只能存储 9 个非 unicode 字符,因此从源表中仅选择 9 个字符,您将执行截断,而不是 Sql 服务器为您执行此操作。
以下查询将从字符串中删除所有空格,然后从字符串中仅取出 9 个字符并将它们转换为 NVARCHAR(9) ......
CREATE TABLE New_TABLE (Col1 NVARCHAR(9), Col2 NVARCHAR(9))
GO
INSERT INTO New_TABLE (Col1, Col2)
SELECT CONVERT(NVARCHAR(9),LEFT(LTRIM(Col1), 9))
,CONVERT(NVARCHAR(9),LEFT(LTRIM(Col2), 9))
FROM Existing_Table
GO
Run Code Online (Sandbox Code Playgroud)