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

SQL सर्वर डेटाबेस में एकाधिक तालिकाओं में कॉलम में डिफ़ॉल्ट बाधाओं को जोड़ने के लिए स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 94

परिदृश्य:

आप SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपकी कंपनी के पास कई तालिकाओं वाला डेटाबेस है। प्रत्येक तालिका में कुछ ऑडिट कॉलम होते हैं जैसे CreatedOn, CreatedBy। उन पर कभी भी कोई डिफ़ॉल्ट प्रतिबंध नहीं बनाया गया था। आप मूल्य getdate() के साथ सभी तालिका के लिए CreatedOn कॉलम पर डिफ़ॉल्ट बाधा बनाना चाहते हैं, साथ ही आप CreatedBy=SUSER_SNAME() के लिए डिफ़ॉल्ट बाधा बनाना चाहते हैं। आपके पास स्ट्रिंग का एक और कॉलम हो सकता है और आप इसके लिए स्क्रिप्ट जेनरेट करना चाहेंगे वह भी।

समाधान:

नीचे दी गई स्क्रिप्ट का उपयोग सभी तालिकाओं के लिए संपूर्ण डेटाबेस में दिए गए कॉलम के लिए डिफ़ॉल्ट बाधा उत्पन्न करने के लिए किया जा सकता है। डिफ़ॉल्ट बाधा का नाम होगा DF_SchemaName_TableName_ColumnName।
चलिए नीचे दी गई स्क्रिप्ट का उपयोग करके Getdate() मान के साथ CreatedOn कॉलम के लिए डिफ़ॉल्ट बाधा स्क्रिप्ट जेनरेट करते हैं।

Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='CreatedON'
SET @DefaultValue='Getdate()'

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
से जुड़ें
 
 
एसक्यूएल सर्वर में डेटाबेस में कॉलम में डिफ़ॉल्ट बाधा जोड़ने के लिए स्क्रिप्ट जेनरेट करें
 आपको केवल अपनी आवश्यकताओं के अनुसार @ColumnName और @DefaultValue चरों में परिवर्तन करना होगा। मान =SUSER_SNAME () के साथ कॉलम द्वारा बनाए गए डिफ़ॉल्ट बाधा को जोड़ने के लिए एक ही स्क्रिप्ट का उपयोग करें।
Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='CreatedBy'
SET @DefaultValue='SUSER_SNAME()'

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
 
एसक्यूएल सर्वर डेटाबेस में कॉलम पर डिफ़ॉल्ट बाधा जोड़ने के लिए स्क्रिप्ट कैसे उत्पन्न करें
 
अब मान लें कि आप कुछ स्ट्रिंग मान के लिए डिफ़ॉल्ट मान सेट करना चाहते हैं क्योंकि हम क्षेत्र के लिए डिफ़ॉल्ट बाधा बनाना चाहते हैं column='USA' , जब @DefaultValue चर का मान सेट किया जाता है, तो नीचे दिखाए गए अनुसार एकल उद्धरण जोड़ें।
Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='Region'
SET @DefaultValue='''USA'''

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
 
 
एसक्यूएल सर्वर डेटाबेस में एकाधिक तालिकाओं में कॉलम पर डिफ़ॉल्ट बाधा जोड़ने के लिए स्क्रिप्ट कैसे उत्पन्न करें
 
 
वीडियो डेमो :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 सर्वर में तालिका में संग्रहीत करें

  2. SQL सर्वर केस-संवेदनशीलता की जाँच करता है?

  3. कुल फ़ंक्शन के बिना एसक्यूएल सर्वर में पिवट क्वेरी कैसे बनाएं?

  4. SQL सर्वर पाठ प्रकार बनाम varchar डेटा प्रकार

  5. SQL सर्वर उच्च उपलब्धता:मौजूदा फ़ेलओवर क्लस्टर इंस्टेंस में नई डिस्क जोड़ें