2013-01-24 6 views
5

मैं नामित Table1उसके गुण

 

Column Name  Data type Max length Precision Scale is_nullable Primary Key 
    Price  float   8   53   0  1    0 
    Name   varchar  180   0   0  1    0 
    Id_no  int   4   10   0  1    1 
    DOB   date   3   10   0  1    0 

मैं Table2 नामित जहां (जैसे गुण के साथ तालिका 1 के स्तंभ नाम पंक्तियों एक और तालिका बनाने के लिए जरूरत है एक मेज है के साथ एक और तालिका की पंक्तियां से तालिका बनाएं डेटा प्रकार, अधिकतम लंबाई आदि) एक और टेबल के मेरे कॉलम,

 
Table 2 
Price Name Id_No DOB 

की तरह होना चाहिए (कृपया ध्यान दें कि बनाने तालिका क्वेरी भी गुण के कारण)

में रखना चाहिए
+1

आप एक और टेबल बनाना चाहते हैं या सिर्फ पिवोट डेटा का चयन करना चाहते हैं? – WKordos

+0

समाधान एसक्यूएल में विशेष रूप से होना चाहिए? यदि यह एक PHP/पायथन/रूबी/कुछ भी लिपि के लिए बैकएंड है, तो यह उस भाषा में जो भी आप चाहते हैं उसे करने के लिए काफी सरल होगा। – Dan

+0

@WKordos मैं एक नई टेबल (टेबल 2) बनाना चाहता हूं .. जहां तालिका 1 की मेरी पहली कॉलम पंक्तियां तालिका 2 के मेरे कॉलम होनी चाहिए .. लेकिन तालिका 1 के अन्य कॉलम में निर्दिष्ट डेटा प्रकारों के .. – Yoshi

उत्तर

0

आप select into के साथ एक मेज की एक प्रति बना सकते हैं:

select * 
into NewTable 
from OldTable 
+0

मेरा मानना ​​है कि ओपी एक टेबल बनाने में सक्षम होना चाहता है जिसका फ़ील्ड ओल्डटेबल की पंक्तियों द्वारा परिभाषित किया गया है। वह तालिका को स्थानांतरित करने की तलाश में है, मौजूदा संरचना की प्रतिलिपि नहीं बना रहा है। – Dan

+0

@Andomar मैं एक प्रतिलिपि बनाना नहीं चाहता .. मैं एक नई टेबल बनाना चाहता हूं जहां मेरी तालिका 1 की पंक्तियां मेरी तालिका के कॉलम 2 – Yoshi

+0

@DanSullivan बिल्कुल सही होनी चाहिए! लेकिन यह सिर्फ स्थानांतरित नहीं है .. मुझे बस अपने [कॉलम नाम] फ़ील्ड मानों को मेरी तालिका 2 के अपने कॉलम पर चाहिए। लेकिन मेरे अन्य कॉलम फ़ील्ड मान जैसे डेटा प्रकार मैक्सलेथेंथ मेरी गुण होनी चाहिए – Yoshi

0
create table table2 
as 
select * form table1; 
+0

भले ही यह मानक SQL है, SQL सर्वर इस वाक्यविन्यास का समर्थन नहीं करता है। उन्होंने इसके लिए अपने स्वयं के वाक्यविन्यास को लागू करना चुना। –

0

आप गतिशील रूप से एक SQL विवरण बना सकते हैं और फिर उस आदेश चला।

DECLARE @dsql nvarchar(max) = N'' 

SELECT @dsql += QUOTENAME([Column Name]) + ' ' + 
     [Data type] + 
     + CASE WHEN [Data type] = 'varchar' 
       THEN '(' + CAST([Max length] AS nvarchar(4)) + ')' ELSE '' END + ','   
FROM Table1 

SELECT @dsql = 'CREATE TABLE Table2 (' + LEFT(@dsql, LEN(@dsql) - 1) + ')' 
EXEC sp_executesql @dsql