[Resolved] Operand type clash: int is incompatible with uniqueidentifier

When developing in SQL Server, under certain circumstances, you might get the error message: Operand type clash: int is incompatible with uniqueidentifier.

In this article, we will be discussing about, why you got that message, what’s wrong in your T-SQL script and how to fix it.

 

 

About the above “Operand type clash: error message

In order to better understand why you received the “Operand type clash: int is incompatible with uniqueidentifier” error message, first, let’s reproduce the issue.

So, first, let’s create the following table:

CREATE TABLE #tblTest(
id UNIQUEIDENTIFIER PRIMARY KEY,
code varchar(50)
);

As you can see, the “id” column, uses the “uniqueidentifier” data type.

In SQL Server, a uniqueidentifier value, is actually a 16-byte GUID.

An example of such value is: 395EAFFB-A01F-4E99-95D5-E36ADD0F53A4

In SQL Server, you can generate GUIDs, using the NEWID() built-in system function.

 

Let’s reproduce the error

Now, let’s try try to execute the below T-SQL statement, in order to insert a record to our sample table:

 

T-SQL script:

INSERT INTO #tblTest
VALUES (2,'Test2');

 

Output:

Operand type clash: int is incompatible with uniqueidentifier - Article on SQLNetHub

 

 

As you can see, the above T-SQL script returned the error message: “Operand type clash: int is incompatible with uniqueidentifier“.

 

How to resolve the error

Now, let’s try once more to insert a record but this time, using a uniqueidentifier value for the “id” column.

 

T-SQL Script:

INSERT INTO #tblTest
VALUES (NEWID(),'Test1');

 

Output:

Operand type clash: int is incompatible with uniqueidentifier - Article on SQLNetHub

As you can see, the above T-SQL statement was successfully executed.

 

How to resolve such errors

In order to resolve such errors, you always need to take into consideration the data types of each column in the table.

In the first example, we have tried to insert an integer value for the “id” column, which has the uniqueidentifier data type and that resulted in the specific “Operand type clash” error message.

In the second example, where we have inserted a proper value for the “id” column, that is a value of the uniqueidentifier data type, the T-SQL statement was successfully executed.

 

What about similar error messages?

Just like the error message “Operand type clash: int is incompatible with uniqueidentifier“, you might get similar error messages such as:

  • uniqueidentifier is incompatible with int
  • uniqueidentifier is incompatible with tinyint

 

The solution is always the same, use the correct value types for the column(s) with the uniqueidentifier data type, that is, a 16-byte GUID value.

 


Get Started with MySQL on the Azure Platform – Enroll to our course on Udemy!

Enroll to the course with an exclusive discount, and get started with Azure Database for MySQL, fast and easy!

Introduction to Azure Database for MySQL - Online Course
(Lifetime Access, Q&A, Certificate of Completion, downloadable resources and more!)

Enroll with Discount


 

Featured Online Courses:

 

Read Also:

 

Subscribe to our newsletter and stay up to date!

Subscribe to our YouTube channel (SQLNetHubTV)!

Like our Facebook Page!

Check our SQL Server Administration articles.

Check our eBooks!

 

Rate this article: 1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)

Loading...

Reference: SQLNetHub.com (https://www.sqlnethub.com)

© SQLNetHub