परिदृश्य:
आप 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 सर्वर डेटाबेस में एकाधिक तालिकाओं में कॉलम में डिफ़ॉल्ट बाधा जोड़ने के लिए स्क्रिप्ट जेनरेट करें