我如何在没有科学符号的情况下将Bigint作为NVARCHAR存储在SQL Server表中



我需要将数字值存储在SQL表中作为字符串(由于某些包含非数字字符的ID(,但是我很难实现此目的,而无需使用科学符号来存储它,如果我可以在视图中进行调整,那不是问题,但是这样做时会失去最后几个数字。

我已经尝试过(就像您使用查询一样(将其施加到bigint中,然后在INSERT INTO语句中施放nvarchar,但这不会影响其存储方式。

这是我要实现的目标:

CREATE TABLE [dbo].[customer_comp](
    [customer_ref] [nvarchar](50) NULL,
    [customer_name] [nvarchar](255) NULL
) ON [PRIMARY]
INSERT INTO [customer_comp] 
    (customer_ref, customer_name)
VALUES
    ('199000243', 'John Smith'),
    ('CR-222-3X0D', 'Jane Smith');

预期结果:

+--------------+---------------+
| customer_ref | customer_name |
+--------------+---------------+
| 199000243    | John Smith    |
| CR-222-3X0D  | Jane Smith    |
+--------------+---------------+

结果我一直得到:

+--------------+---------------+
| customer_ref | customer_name |
+--------------+---------------+
| 1.9900e+003  | John Smith    |
| CR-222-3X0D  | Jane Smith    |
+--------------+---------------+

如果我完全以错误的方式进行此操作,我将其存储在这种方式上,因为某些值以alpha数字格式存储,例如'aaa-nnna-nna-nnaa'数字'nnnnnnnn'因此要求列接受nvarchar。

将来只不过是任何人都会偶然发现的任何人,您可以简单地简单地 INSERT INTO而无需将数据投入其中。将数字值施放到bigint中,然后在nvarchar中像以下内容一样,将导致存储科学符号:

CAST(CAST(customer_ref as bigint) as nvarchar(50))

最新更新