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

अधिकतम लंबाई और अधिकतम लंबाई वाले सभी SQL स्तंभों की सूची बनाएं

सुझावों के लिए धन्यवाद। मैं निम्नलिखित समाधान के साथ आया हूं। यह मुझे वह डेटा देता है जिसकी मुझे आवश्यकता है लेकिन यह देखने में दिलचस्पी होगी कि क्या इसे और अधिक कुशल बनाया जा सकता है।

declare @results table
(
ID varchar(36),
TableName varchar(250),
ColumnName varchar(250),
DataType varchar(250),
MaxLength varchar(250),
Longest varchar(250),
SQLText varchar(250)
)

INSERT INTO @results(ID,TableName,ColumnName,DataType,MaxLength,Longest,SQLText)
SELECT 
    NEWID(),
    Object_Name(c.object_id),
    c.name,
    t.Name,
    case 
        when t.Name != 'varchar' Then 'NA'
        when c.max_length = -1 then 'Max' 
        else CAST(c.max_length as varchar)
    end,
    'NA',
    'SELECT Max(Len(' + c.name + ')) FROM ' + OBJECT_SCHEMA_NAME(c.object_id) + '.' + Object_Name(c.object_id)
FROM    
    sys.columns c
INNER JOIN 
    sys.types t ON c.system_type_id = t.system_type_id
WHERE
    c.object_id = OBJECT_ID('MyTable')    


DECLARE @id varchar(36)
DECLARE @sql varchar(200)
declare @receiver table(theCount int)

DECLARE length_cursor CURSOR
    FOR SELECT ID, SQLText FROM @results WHERE MaxLength != 'NA'
OPEN length_cursor
FETCH NEXT FROM length_cursor
INTO @id, @sql
WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO @receiver (theCount)
    exec(@sql)

    UPDATE @results
    SET Longest = (SELECT theCount FROM @receiver)
    WHERE ID = @id

    DELETE FROM @receiver

    FETCH NEXT FROM length_cursor
    INTO @id, @sql
END
CLOSE length_cursor
DEALLOCATE length_cursor


SELECT 
    TableName, 
    ColumnName, 
    DataType, 
    MaxLength, 
    Longest 
FROM 
    @results


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर परिवर्तनीय कॉलम नाम?

  2. SQL सर्वर में SYSUTCDATETIME () बनाम GETUTCDATE ():क्या अंतर है?

  3. एसक्यूएल - पदानुक्रम को कैसे स्टोर और नेविगेट करें?

  4. लिनक्स पर SQL सर्वर

  5. जावा 8 पर SQL सर्वर JDBC त्रुटि:ड्राइवर सुरक्षित सॉकेट लेयर (SSL) एन्क्रिप्शन का उपयोग करके SQL सर्वर से सुरक्षित कनेक्शन स्थापित नहीं कर सका