我得到以下错误,当我运行SQL查询,同时从一个表复制到另一个数据,SQL服务器 - 结果空间不足uniqueidentifier值转换为char
消息8170,级别16,状态2,行2 结果空间不足以将 uniqueidentifier值转换为char。
我的SQL查询,
INSERT INTO dbo.cust_info (
uid,
first_name,
last_name
)
SELECT
NEWID(),
first_name,
last_name
FROM dbo.tmp_cust_info
我创建表的脚本,
CREATE TABLE [dbo].[cust_info](
[uid] [varchar](32) NOT NULL,
[first_name] [varchar](100) NULL,
[last_name] [varchar](100) NULL)
CREATE TABLE [dbo].[tmp_cust_info](
[first_name] [varchar](100) NULL,
[last_name] [varchar](100) NULL)
我相信有一些问题NEWID(),如果我拿出和用它正在工作的一些字符串替换它。
我很感激任何帮助。提前致谢。
而且顺便说一句,你应该使用'uniqueidentifier'列式存储的GUID,不'字(36)'(var是不需要的,因为它不可变,是吗?)。 'uniqueidentifier'只需要16个字节的存储空间,而不需要36个字符表示的guid。 – 2011-04-12 00:35:07
简单但直截了当的答案。 – bot 2016-02-24 10:28:00