Potrebbe essere che la tua chiave esterna stia guardando la tabella non nello schema predefinito (probabilmente dbo
). In questo caso non vedrai object_id
finché non specifichi lo schema, in questo modo:
SELECT OBJECT_ID(N'<schema>.FK_Name', N'F')
In realtà, potresti avere più oggetti con lo stesso nome nel tuo database, ma all'interno di schemi diversi. OBJECT_ID(N'FK_Name', N'F')
restituirà l'id dell'oggetto nello schema predefinito.
Puoi testarlo in questo modo:
create schema test
create table test.temp1 (id int primary key)
create table test.temp2 (id int)
go
alter table test.temp2 add constraint FK_temp foreign key(id) references test.temp1(id)
select object_id('FK_temp', 'F') -- returns null
select object_id('test.FK_temp', 'F') -- returns object id
drop table test.temp2
drop table test.temp1
drop schema test