Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa saya tidak dapat menemukan kunci asing menggunakan fungsi OBJECT_ID()?

Bisa jadi kunci asing Anda mencari ke tabel tidak dalam skema default (mungkin dbo ). Dalam hal ini Anda tidak akan melihat object_id sampai Anda menentukan skema, seperti ini:

SELECT OBJECT_ID(N'<schema>.FK_Name', N'F')

Sebenarnya, Anda dapat memiliki beberapa objek dengan nama yang sama di database Anda, tetapi dalam skema yang berbeda. OBJECT_ID(N'FK_Name', N'F') akan mengembalikan id objek dalam skema default.

Anda dapat mengujinya seperti ini:

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

demo biola sql




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL SUM dari dua tabel yang berbeda

  2. Bagaimana Menemukan daftar Prosedur Tersimpan yang memengaruhi kolom tertentu?

  3. Max ruang nyata dalam varbinary (maks) di SQL Server

  4. ubah satu baris menjadi kolom

  5. Menjalankan prosedur tersimpan menggunakan Penjadwal tugas Windows