Có thể là khóa ngoại của bạn đang tìm kiếm bảng không có trong lược đồ mặc định (có thể là dbo
). Trong trường hợp này, bạn sẽ không thấy object_id
cho đến khi bạn chỉ định giản đồ, như sau:
SELECT OBJECT_ID(N'<schema>.FK_Name', N'F')
Trên thực tế, bạn có thể có nhiều đối tượng có cùng tên trong cơ sở dữ liệu của mình, nhưng trong các lược đồ khác nhau. OBJECT_ID(N'FK_Name', N'F')
sẽ trả về id của đối tượng trong lược đồ mặc định.
Bạn có thể kiểm tra nó như thế này:
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