Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao tôi không thể tìm thấy khóa ngoại bằng hàm OBJECT_ID ()?

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

bản trình diễn sql fiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi thay đổi loại con trỏ trên kết quả hàm dữ liệu Perl OLE32 MSSQL

  2. T-SQL 2005:Truyền giá trị Null thông qua kiểu dữ liệu XML

  3. SQL Server - nghĩa đen boolean?

  4. Tại sao checksum () trả về cùng một giá trị cho chuỗi khác nhau

  5. Cài đặt SQL Server 2016