हाल ही में मैंने यूडीटी के बारे में पढ़ा है। मैंने एक प्रकार बनाया है लेकिन मुझे उसमें कोई समस्या है। निम्नलिखितएक त्रुटि प्रकार ब्लॉक को फेंकने के बजाय सफलतापूर्वक निष्पादित
---drop type ssn
CREATE TYPE ssn
FROM VARCHAR(11) NOT NULL;
DECLARE @er ssn;
IF Object_id('TEMPDB.DBO.#ter', 'U') IS NOT NULL
DROP TABLE #ter;
CREATE TABLE #ter (
PERIOD_SID INT
,PERIOD_QUAR VARCHAR(10) PRIMARY KEY (PERIOD_SID)
)
INSERT INTO #ter (
PERIOD_SID
,PERIOD_QUAR
)
SELECT *
FROM (
VALUES (
(1)
,(@er)
)
) V(p, q)
मैं एक प्रकार varchar (11) के साथ एसएसएन अशक्त नहीं बना है पर गौर करें, और ऊपर एक तर्क भाग गया, इसे सफलतापूर्वक निष्पादित
मेरी धारणा के अनुसार यह एक फेंक चाहिए त्रुटि।
मुझे यह जानने की जरूरत है कि उपर्युक्त तर्क सफलतापूर्वक क्यों चल रहा है।
संपादित
प्रति सुझाव के रूप में मैं, AQL सर्वर में एक स्तंभ के रूप में इस UDT जोड़ लिया है के बाद से ओरेकल में हम समान संग्रह के साथ एक कॉलम
IF Object_id('TEMPDB.DBO.#ter1', 'U') IS NOT NULL
DROP TABLE #ter1;
CREATE TABLE #ter1 (
PERIOD_SID INT
,PERIOD_QUAR ssn PRIMARY KEY (PERIOD_SID)
)
UDT के लिए बना सकते हैं
तालिका बनाने के दौरान एक त्रुटि आई थी जिसमें कहा गया था कि ऐसा कोई डेटाटाइप "एसएसएन"
अग्रिम
आपको किस त्रुटि से प्राप्त होने की उम्मीद है? –
@GiorgosBetsos मुझे उम्मीद है कि शून्य मान – Smart003
को शून्य मान को असाइन नहीं किया जा सकता है, हम SQL सर्वर में * प्रारंभिक * के साथ 'variable 'घोषित कर सकते हैं (इसे' NULL 'पर डिफ़ॉल्ट)। तो यह 'यूडीटी' की 'नॉट नल' संपत्ति को आवाज देता है। निश्चित नहीं है कि इसे यूडीटी में न्यूल संपत्ति का उल्लेख करने की अनुमति क्यों दी गई। –