Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मुझे OBJECT_ID() फ़ंक्शन का उपयोग करके एक विदेशी कुंजी क्यों नहीं मिल रही है?

वैसे यह हो सकता है कि आपकी विदेशी कुंजी तालिका को डिफ़ॉल्ट स्कीमा में नहीं देख रही है (शायद dbo ) इस मामले में आपको object_id दिखाई नहीं देगा जब तक आप स्कीमा निर्दिष्ट नहीं करते, इस तरह:

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

असल में, आपके डेटाबेस में एक ही नाम के साथ कई ऑब्जेक्ट हो सकते हैं, लेकिन विभिन्न स्कीमाओं के भीतर। OBJECT_ID(N'FK_Name', N'F') डिफ़ॉल्ट स्कीमा में ऑब्जेक्ट की आईडी लौटाएगा।

आप इसका परीक्षण इस तरह कर सकते हैं:

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

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. उपयोगकर्ता को अपने डेटाबेस में ऑन-द-फ्लाई कॉलम जोड़ने की अनुमति देने का सबसे अच्छा तरीका क्या है?

  2. ऐसा उपयोगकर्ता बनाएं जो केवल एक डेटाबेस देख सके, और केवल उसमें से चयन कर सके?

  3. MSExcel और SQL सर्वर में डेटाटाइम कन्वर्ट के बीच अंतर

  4. सी # का उपयोग कर स्थानीय SQL सर्वर डेटाबेस से कनेक्ट करना

  5. फ्रीबीसीपी:यूनिकोड डेटा कॉलम के लिए विषम बाइट आकार है। सम बाइट आकार का होना चाहिए