我需要在名为Customers
的SQL Server表中添加一行。
以下是表格设计:
这里我是如何尝试在上面的表格中添加一行:
INSERT INTO Customers (Id, Name)
VALUES (1, 'test');
但是我收到了这个错误:
Msg 206,Level 16,State 2,Line 1
不兼容
操作数类型冲突:int与uniqueidentifier
正如您可以看到ID
类型的uniqueidentifier
列。如何在上面的列中添加uniqueidentifier
?
答案 0 :(得分:2)
使用newid()
:
INSERT INTO Customers(Id, Name) VALUES (newid(), 1);
请注意,这通常使用default
值来完成:
create table customers (
id uniqueidentifier default newid(),
. . .
);
由于各种技术原因,建议不要将uniqueidentifier
列作为主键 - 尽管您可以使用newsequentialid()
解决一些问题。相反,请将其设为唯一键并使用另一个密钥(通常是identity()
列)作为主键。
答案 1 :(得分:2)
uniqueidentifier数据类型存储16字节二进制值,作为全局唯一标识符(GUID)运行。
使用示例:
insert into customers values('7E3E3BC1-9B15-473C-A45A-46D89689156C', 'Tomas')
insert into customers values(newid(), 'Tomas')
查看更多详情:https://technet.microsoft.com/en-US/library/ms190215(v=sql.105).aspx