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

पंक्ति को एक टेबल से दूसरी टेबल पर ले जाएं?

SQL सर्वर 2005 और इसके बाद के संस्करण के लिए, OUTPUT क्लॉज (Transact-SQL) को आज़माएं। /ए> खंड:

DELETE OldTable
  OUTPUT DELETED.col1, DELETED.col2...
      INTO NewTable
  WHERE ID=...

कार्य उदाहरण:

DECLARE @OldTable table(col1 int, col2    varchar(5), col3 char(5), col4     datetime)
DECLARE @NewTable table(col1 int, column2 varchar(5), col3 int    , col_date char(23), extravalue int, othervalue varchar(5))
INSERT @OldTable VALUES (1 , 'AAA' ,'A'  ,'1/1/2010'           )
INSERT @OldTable VALUES (2 , 'BBB' ,'12' ,'2010-02-02 10:11:22')
INSERT @OldTable VALUES (3 , 'CCC' ,null ,null                 )
INSERT @OldTable VALUES (4 , 'B'   ,'bb' ,'2010-03-02'         )

DELETE @OldTable
    OUTPUT DELETED.col1
          ,DELETED.col2
          ,CASE
               WHEN ISNUMERIC(DELETED.col3)=1 THEN DELETED.col3 
               ELSE NULL END
          ,DELETED.col4
          ,CONVERT(varchar(5),DELETED.col1)+'!!'
        INTO @NewTable (col1, column2, col3, col_date, othervalue)
    OUTPUT 'Rows Deleted: ', DELETED.* --this line returns a result set shown in the OUTPUT below
    WHERE col1 IN (2,4)

SELECT * FROM @NewTable

आउटपुट:

               col1        col2  col3  col4
-------------- ----------- ----- ----- -----------------------
Rows Deleted:  2           BBB   12    2010-02-02 10:11:22.000
Rows Deleted:  4           B     bb    2010-03-02 00:00:00.000

(2 row(s) affected)

col1        column2 col3        col_date                extravalue  othervalue
----------- ------- ----------- ----------------------- ----------- ----------
2           BBB     12          Feb  2 2010 10:11AM     NULL        2!!
4           B       NULL        Mar  2 2010 12:00AM     NULL        4!!

(2 row(s) affected)


  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 सर्वर में डेटाटाइम को M/D/YYYY के रूप में कैसे प्रारूपित करें?

  2. ऑटो इंक्रीमेंट के लिए सबसे अच्छा तरीका क्या है?

  3. SQL सर्वर में कॉलम की लंबाई प्राप्त करने के लिए COL_LENGTH () का उपयोग करें

  4. SQL सर्वर में टेक्स्ट डेटाटाइप कॉलम में 43679 से अधिक चार को सहेजने में सक्षम नहीं है

  5. SQL Server 2008 और SQL Server 2008 R2 चलाने वाले उपयोगकर्ता ध्यान दें