किसी स्तंभ के लिए डिफ़ॉल्ट मान के रूप में वर्तमान दिनांक का उपयोग करें


79

DateTime.NowSql Server में किसी कॉलम का डिफ़ॉल्ट मान सेट करने का कोई तरीका है ?

उदाहरण:

table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null

रेखा:

Insert into Event(Description) values('teste');

एक पंक्ति सम्मिलित करें और दिनांक मान वर्तमान दिनांक होना चाहिए।


1
यह लिंक उपयोगी भी हो सकता है - blog.sqlauthority.com/2013/05/10/…
स्टीम

जवाबों:


108

मान के रूप में GETDATE () फ़ंक्शन के साथ एक डिफ़ॉल्ट बाधा जोड़ें।

ALTER TABLE myTable 
  ADD CONSTRAINT CONSTRAINT_NAME
    DEFAULT GETDATE() FOR myColumn

9
PostgreSQL में यह होगा: "परिवर्तन तालिका myTable जोड़ें कॉलम mydatecol तारीख डिफ़ॉल्ट अब ();" .. मैं केवल इस टिप्पणी को जोड़ता हूं क्योंकि प्रश्न के शीर्षक में Sql-Server का उल्लेख नहीं किया गया है। PostgreSQL उपयोगकर्ता की मदद कर सकते हैं ...
alfonx

1
यदि स्तंभ तालिका में पहले से मौजूद है, तो यह वह प्रपत्र होगा, और INSERT विवरण (या CURSOR आवेषण) में मान छोड़े जाने पर डिफ़ॉल्ट मान सेट करने के लिए इसमें कोई बाधा नहीं है।
टीटी।

जिस तरह से यह लिखा गया है, ऐसा लगता है कि यह CONSTRAINTकीवर्ड को याद कर रहा है । यह होना चाहिए ... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
Faust

1
क्या GETDATE()हमें UTC समय देता है?
Zapnologica

20
CREATE TABLE Orders(
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table
)

3
यह फ़ॉर्म एक अनाम बाधा सेट करता है। बाधा का नाम देना सबसे अच्छा है:[...]OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]
टीटी।

5

आप उपयोग कर सकते हैं:

Insert into Event(Description,Date) values('teste', GETDATE());

इसके अलावा, आप अपनी तालिका बदल सकते हैं ताकि 'दिनांक' में एक डिफ़ॉल्ट हो, "GETDATE ()"


3

तालिका स्तंभ नाम का चयन करें जहाँ आप वर्तमान तिथि का डिफ़ॉल्ट मान प्राप्त करना चाहते हैं

 ALTER TABLE 
 [dbo].[Table_Name]
 ADD  CONSTRAINT [Constraint_Name] 
 DEFAULT (getdate()) FOR [Column_Name]

ऑल्टर टेबल क्वेरी

Alter TABLE [dbo].[Table_Name](
    [PDate] [datetime] Default GetDate())

3

मुझे अपने डेटाबेस प्रोजेक्ट के लिए भी इसकी जरूरत है। मैंने अपने निष्कर्ष यहाँ साझा करने का निर्णय लिया।

1) जब डेटा पहले से मौजूद है तो डिफ़ॉल्ट रूप से बिना NULL फ़ील्ड का कोई रास्ता नहीं है ( क्या मैं DEFAF मान के बिना कोई शून्य कॉलम नहीं जोड़ सकता )

2) इस विषय को लंबे समय से संबोधित किया गया है। यहां 2008 का प्रश्न है ( SQL सर्वर में मौजूदा तालिका में एक डिफ़ॉल्ट मान के साथ एक स्तंभ जोड़ें )

3) DEFAULT बाधा एक स्तंभ के लिए एक डिफ़ॉल्ट मूल्य प्रदान करने के लिए प्रयोग किया जाता है। डिफ़ॉल्ट मान सभी नए रिकॉर्ड में जोड़ा जाएगा यदि कोई अन्य मूल्य निर्दिष्ट नहीं किया गया है। ( https://www.w3schools.com/sql/sql_default.asp )

4) विजुअल स्टूडियो डेटाबेस प्रोजेक्ट जो मैं विकास के लिए उपयोग करता हूं, आपके लिए परिवर्तन स्क्रिप्ट बनाने के बारे में वास्तव में अच्छा है। यह मेरी DB पदोन्नति के लिए बनाई गई परिवर्तन स्क्रिप्ट है:

GO
PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...';

GO
ALTER TABLE [dbo].[PROD_WHSE_ACTUAL]
    ADD [DATE] DATE DEFAULT getdate() NOT NULL;

-

विकास के लिए विजुअल स्टूडियो का उपयोग करके मैंने अपने डेटाबेस को अपडेट करने के लिए यहां कदम उठाए हैं।

1) डिफ़ॉल्ट मान जोड़ें (विजुअल स्टूडियो एसएसडीटी: डीबी प्रोजेक्ट: टेबल डिजाइनर) यहाँ छवि विवरण दर्ज करें

2) परिवर्तन स्क्रिप्ट उत्पन्न करने के लिए स्कीमा तुलना उपकरण का उपयोग करें।

code already provided above

3) परिवर्तन लागू करने से पहले डेटा देखें। यहाँ छवि विवरण दर्ज करें

4) परिवर्तन को लागू करने के बाद डेटा देखें। यहाँ छवि विवरण दर्ज करें


1

दिनांक स्तंभ के लिए वर्तमान दिनांक को डिफ़ॉल्ट के रूप में उपयोग करने के लिए , आपको निम्न की आवश्यकता होगी:

1- ओपन टेबल डिजाइनर

2- कॉलम चुनें

3- कॉलम प्रॉपर्टीज पर जाएं

4- डिफ़ॉल्ट मान या बाइंडिंग प्रॉपराइट का मान सेट करें ( getdate () )

यहाँ छवि विवरण दर्ज करें


0

तालिका निर्माण सिंटैक्स इस तरह हो सकता है:

Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) 
PRIMARY KEY, date_added date DEFAULT 
GetDate());

प्रविष्टि क्वेरी वाक्यविन्यास इस तरह हो सकता है:

Insert into api_key values(GETDATE());

0

तालिका पर राइट क्लिक करें और डिज़ाइन पर क्लिक करें, फिर उस कॉलम पर क्लिक करें जिसे आप डिफ़ॉल्ट मान सेट करना चाहते हैं।

फिर स्तंभ गुणों में पृष्ठ के नीचे डिफ़ॉल्ट मान या बाइंडिंग सेट करें: 'getdate ()'

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.