The multi-part identifier "inserted.Id" could not be bound


This error message typically occurs in SQL Server when you're trying to use a column value from an inserted row in a trigger or stored procedure, but the column name is incorrect or doesn't exist.

Here's an example trigger that might cause this error:


CREATE TRIGGER [dbo].[InsertRecord] ON [dbo].[MyTable] AFTER INSERT
AS
BEGIN
    INSERT INTO [dbo].[MyAuditTable] ([ID], [UserName], [ActionType])
    VALUES (inserted.Id, CURRENT_USER, 'INSERT');
END

In this example, the trigger is supposed to insert a row into the `MyAuditTable` table with the ID of the inserted row, the current user name, and the action type of "INSERT". However, the trigger generates the error message "The multi-part identifier 'inserted.Id' could not be bound."

The problem is that `inserted.Id` is not a valid column name in the `MyTable` table. To fix the error, you need to replace `inserted.Id` with the correct column name in the `MyTable` table, for example:


CREATE TRIGGER [dbo].[InsertRecord] ON [dbo].[MyTable] AFTER INSERT
AS
BEGIN
    INSERT INTO [dbo].[MyAuditTable] ([ID], [UserName], [ActionType])
    VALUES (inserted.MyTableId, CURRENT_USER, 'INSERT');
END

In this corrected example, we've assumed that the ID column in the `MyTable` table is called `MyTableId`. By replacing `inserted.Id` with `inserted.MyTableId`, the trigger should work as expected without generating the error message.

Written by AI
Edited by Human


SQL
published
v.1.00




© 2024 - ErnesTech - Privacy
E-Commerce Return Policy