在从一个表复制数据到另一个表时,运行 SQL 查询时,我遇到了以下错误:
Msg 8170,Level 16,State 2,Line 2 Insufficient result space to convert uniqueidentifier value to 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,而不是character(36)
(既然它不是变量,就不需要 var 了,对吧?)。uniqueidentifier
只需要 16 字节的存储空间,而字符表示法需要 36 字节。 - Remus Rusanu