我需要将数字值存储在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))