복붙노트

[SQL] SQL Server의 '테이블을 설명'에 해당 무엇입니까?

SQL

SQL Server의 '테이블을 설명'에 해당 무엇입니까?

나는 SQL Server 데이터베이스를 가지고 있고 그것이 무슨 열과 종류 알고 싶어요. 나는 엔터프라이즈 관리자와 같은 GUI를 사용하지 않고 쿼리를 통해이 일을 선호하는 것입니다. 이 작업을 수행 할 수있는 방법이 있나요?

해결법

  1. ==============================

    1.당신은 sp_columns를 저장 프로 시저를 사용할 수 있습니다 :

    당신은 sp_columns를 저장 프로 시저를 사용할 수 있습니다 :

    exec sp_columns MyTable
    
  2. ==============================

    2.테이블에 대한 메타 데이터를 얻을 수있는 몇 가지 방법이 있습니다 :

    테이블에 대한 메타 데이터를 얻을 수있는 몇 가지 방법이 있습니다 :

    EXEC sp_help tablename
    

    여러 결과 집합을 반환 테이블을 설명하는 것, 그것은 열 및 제약 조건입니다.

    불행하게도 당신의 의견을 조회해야하고 수동으로 가입 불구하고 INFORMATION_SCHEMA 뷰는, 당신이 원하는 정보를 제공 할 것입니다.

  3. ==============================

    3.이런 경우에 당신이 저장된 프로 시저를 사용하지 않는, 여기에 간단한 쿼리 버전입니다

    이런 경우에 당신이 저장된 프로 시저를 사용하지 않는, 여기에 간단한 쿼리 버전입니다

    select * 
      from information_schema.columns 
     where table_name = 'aspnet_Membership'
     order by ordinal_position
    
  4. ==============================

    4.당신은 다음을 사용할 수 있습니다

    당신은 다음을 사용할 수 있습니다

    sp_help는 tablename에

    예: sp_help는 고객

    또는 사용 바로 가기

    예 : 고객 Alt 키 + F1

  5. ==============================

    5.이 쿼리를 사용하여

    이 쿼리를 사용하여

    Select * From INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME = 'TABLENAME'
    
  6. ==============================

    6.다른 답변에 표시하는 방법 이외에, 당신은 사용할 수 있습니다

    다른 답변에 표시하는 방법 이외에, 당신은 사용할 수 있습니다

    SELECT TOP 0 * FROM table_name
    

    이것은 최소한의 오버 헤드를 거의 즉시없고 그 결과, 및 완료와 함께 당신에게 각 열의 이름을 줄 것이다.

  7. ==============================

    7.다음 SQL 쿼리를 사용하십시오; 이 내 사건 일했다.

    다음 SQL 쿼리를 사용하십시오; 이 내 사건 일했다.

    select * FROM   INFORMATION_SCHEMA.Columns where table_name = 'tablename';
    
  8. ==============================

    8.그냥 선택 테이블하고 Alt + F1,

    그냥 선택 테이블하고 Alt + F1,

    그것은 열 이름, 데이터 타입, 키 등과 같은 테이블에 대한 모든 정보가 표시됩니다

  9. ==============================

    9.나는 SQL을 쓴 * 플러스 DESC T-SQL에서 (너무 표시 열 코멘트)을 선택합니다 같은 (리베) :

    나는 SQL을 쓴 * 플러스 DESC T-SQL에서 (너무 표시 열 코멘트)을 선택합니다 같은 (리베) :

    USE YourDB
    GO
    
    DECLARE @objectName NVARCHAR(128) = 'YourTable';
    
    SELECT
      a.[NAME]
     ,a.[TYPE]
     ,a.[CHARSET]
     ,a.[COLLATION]
     ,a.[NULLABLE]
     ,a.[DEFAULT]
     ,b.[COMMENTS]
    -- ,a.[ORDINAL_POSITION]
    FROM
      (
        SELECT
          COLUMN_NAME                                     AS [NAME]
         ,CASE DATA_TYPE
            WHEN 'char'       THEN DATA_TYPE  + '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + ')'
            WHEN 'numeric'    THEN DATA_TYPE  + '(' + CAST(NUMERIC_PRECISION AS VARCHAR) + ', ' + CAST(NUMERIC_SCALE AS VARCHAR) + ')'
            WHEN 'nvarchar'   THEN DATA_TYPE  + '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + ')'
            WHEN 'varbinary'  THEN DATA_TYPE + '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + ')'
            WHEN 'varchar'    THEN DATA_TYPE   + '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + ')'
            ELSE DATA_TYPE
          END                                             AS [TYPE]
         ,CHARACTER_SET_NAME                              AS [CHARSET]
         ,COLLATION_NAME                                  AS [COLLATION]
         ,IS_NULLABLE                                     AS [NULLABLE]
         ,COLUMN_DEFAULT                                  AS [DEFAULT]
         ,ORDINAL_POSITION
        FROM   
          INFORMATION_SCHEMA.COLUMNS
        WHERE
          TABLE_NAME = @objectName
      ) a
      FULL JOIN
      (
       SELECT
         CAST(value AS NVARCHAR)                        AS [COMMENTS]
        ,CAST(objname AS NVARCHAR)                      AS [NAME]
       FROM
         ::fn_listextendedproperty ('MS_Description', 'user', 'dbo', 'table', @objectName, 'column', default)
      ) b
      ON a.NAME COLLATE YourCollation = b.NAME COLLATE YourCollation
    ORDER BY
      a.[ORDINAL_POSITION];
    

    간단한 방법에 인스턴스의 모든 데이터베이스에서 시스템을 선택 사용할 수 있습니다 언급 위의 저장 프로 시저를 표시되고이를 호출 할 수 있습니다 :

    USE master;
    GO
    
    IF OBJECT_ID('sp_desc', 'P') IS NOT NULL
      DROP PROCEDURE sp_desc
    GO
    
    CREATE PROCEDURE sp_desc (
      @tableName  nvarchar(128)
    ) AS
    BEGIN
      DECLARE @dbName       sysname;
      DECLARE @schemaName   sysname;
      DECLARE @objectName   sysname;
      DECLARE @objectID     int;
      DECLARE @tmpTableName varchar(100);
      DECLARE @sqlCmd       nvarchar(4000);
    
      SELECT @dbName = PARSENAME(@tableName, 3);
      IF @dbName IS NULL SELECT @dbName = DB_NAME();
    
      SELECT @schemaName = PARSENAME(@tableName, 2);
      IF @schemaName IS NULL SELECT @schemaName = SCHEMA_NAME();
    
      SELECT @objectName = PARSENAME(@tableName, 1);
      IF @objectName IS NULL
        BEGIN
          PRINT 'Object is missing from your function call!';
          RETURN;
        END;
    
      SELECT @objectID = OBJECT_ID(@dbName + '.' + @schemaName + '.' + @objectName);
      IF @objectID IS NULL
        BEGIN
          PRINT 'Object [' + @dbName + '].[' + @schemaName + '].[' + @objectName + '] does not exist!';
          RETURN;
        END;
    
      SELECT @tmpTableName = '#tmp_DESC_' + CAST(@@SPID AS VARCHAR) + REPLACE(REPLACE(REPLACE(REPLACE(CAST(CONVERT(CHAR, GETDATE(), 121) AS VARCHAR), '-', ''), ' ', ''), ':', ''), '.', '');
      --PRINT @tmpTableName;
      SET @sqlCmd = '
        USE ' + @dbName + '
        CREATE TABLE ' + @tmpTableName + ' (
          [NAME]              nvarchar(128) NOT NULL
         ,[TYPE]              varchar(50)
         ,[CHARSET]           varchar(50)
         ,[COLLATION]         varchar(50)
         ,[NULLABLE]          varchar(3)
         ,[DEFAULT]           nvarchar(4000)
         ,[COMMENTS]          nvarchar(3750));
    
        INSERT INTO ' + @tmpTableName + '
        SELECT
          a.[NAME]
         ,a.[TYPE]
         ,a.[CHARSET]
         ,a.[COLLATION]
         ,a.[NULLABLE]
         ,a.[DEFAULT]
         ,b.[COMMENTS]
        FROM
          (
            SELECT
              COLUMN_NAME                                     AS [NAME]
             ,CASE DATA_TYPE
                WHEN ''char''      THEN DATA_TYPE + ''('' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + '')''
                WHEN ''numeric''   THEN DATA_TYPE + ''('' + CAST(NUMERIC_PRECISION AS VARCHAR) + '', '' + CAST(NUMERIC_SCALE AS VARCHAR) + '')''
                WHEN ''nvarchar''  THEN DATA_TYPE + ''('' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + '')''
                WHEN ''varbinary'' THEN DATA_TYPE + ''('' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + '')''
                WHEN ''varchar''   THEN DATA_TYPE + ''('' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + '')''
                ELSE DATA_TYPE
              END                                             AS [TYPE]
             ,CHARACTER_SET_NAME                              AS [CHARSET]
             ,COLLATION_NAME                                  AS [COLLATION]
             ,IS_NULLABLE                                     AS [NULLABLE]
             ,COLUMN_DEFAULT                                  AS [DEFAULT]
             ,ORDINAL_POSITION
            FROM   
              INFORMATION_SCHEMA.COLUMNS
            WHERE   
              TABLE_NAME = ''' + @objectName + '''
          ) a
          FULL JOIN
          (
             SELECT
               CAST(value AS NVARCHAR)                        AS [COMMENTS]
              ,CAST(objname AS NVARCHAR)                      AS [NAME]
             FROM
               ::fn_listextendedproperty (''MS_Description'', ''user'', ''' + @schemaName + ''', ''table'', ''' + @objectName + ''', ''column'', default)
          ) b
          ON a.NAME COLLATE Hungarian_CI_AS = b.NAME COLLATE Hungarian_CI_AS
        ORDER BY
          a.[ORDINAL_POSITION];
    
        SELECT * FROM ' + @tmpTableName + ';'
    
        --PRINT @sqlCmd;
    
        EXEC sp_executesql @sqlCmd;
        RETURN;
    END;
    GO
    
    EXEC sys.sp_MS_marksystemobject sp_desc
    GO
    

    프로 시저 유형을 실행하려면 :

    EXEC sp_desc 'YourDB.YourSchema.YourTable';
    

    당신은 현재 데이터베이스 (및 스키마) 간단한 형식의 개체에 대한 설명을 얻고 싶은 경우에 :

    EXEC sp_desc 'YourTable';
    

    sp_desc가 시스템에 표시 절차이기 때문에, 당신도 역시 exec 명령을 남길 수 있습니다 (어쨌든 권장하지 않음) :

    sp_desc 'YourTable';
    
  10. ==============================

    10.오라클의에 SQL 서버 상응하는 명령이 저장된 프로 시저를 sp_help는 것입니다 설명

    오라클의에 SQL 서버 상응하는 명령이 저장된 프로 시저를 sp_help는 것입니다 설명

    명령은 당신에게 등 열 이름, 유형, 길이에 대한 정보를 제공합니다 설명

    SQL Server에서의 당신이, 당신이 다음을 수행 할 수있는 데이터베이스 'MYDB'에서 스키마 'MYSCHEMA'에서 'MYTABLE'테이블을 설명 할 가정 해 봅시다 :

    USE mydb;
    exec sp_help 'myschema.mytable';
    
  11. ==============================

    11.당신은 sp_help는 'TABLENAME'를 사용할 수 있습니다

    당신은 sp_help는 'TABLENAME'를 사용할 수 있습니다

  12. ==============================

    12.그 대답의 문제는 당신이 키 정보를 놓치고 있다는 것입니다. 이 비트 지저분하지만 이것은 내가 만들어 내놓았다 빠른 버전은 확실히 그것은 MySQL이 표시 설명 같은 정보를 포함합니다.

    그 대답의 문제는 당신이 키 정보를 놓치고 있다는 것입니다. 이 비트 지저분하지만 이것은 내가 만들어 내놓았다 빠른 버전은 확실히 그것은 MySQL이 표시 설명 같은 정보를 포함합니다.

    Select SC.name AS 'Field', ISC.DATA_TYPE AS 'Type', ISC.CHARACTER_MAXIMUM_LENGTH AS 'Length', SC.IS_NULLABLE AS 'Null', I.is_primary_key AS 'Key', SC.is_identity AS 'Identity'
    From sys.columns AS SC 
    LEFT JOIN sys.index_columns AS IC
    ON IC.object_id = OBJECT_ID('dbo.Expenses') AND 
    IC.column_id = SC.column_id
    LEFT JOIN sys.indexes AS I 
    ON I.object_id = OBJECT_ID('dbo.Expenses') AND 
    IC.index_id = I.index_id
    LEFT JOIN information_schema.columns ISC
    ON ISC.TABLE_NAME = 'Expenses'
    AND ISC.COLUMN_NAME = SC.name
    WHERE SC.object_id = OBJECT_ID('dbo.Expenses')
    
  13. ==============================

    13.이것은 (여기 가능) EntityFramework 역 POCO 발전기 내에서 코드 I의 사용이다

    이것은 (여기 가능) EntityFramework 역 POCO 발전기 내에서 코드 I의 사용이다

    표 SQL :

    SELECT  c.TABLE_SCHEMA AS SchemaName,
            c.TABLE_NAME AS TableName,
            t.TABLE_TYPE AS TableType,
            c.ORDINAL_POSITION AS Ordinal,
            c.COLUMN_NAME AS ColumnName,
            CAST(CASE WHEN IS_NULLABLE = 'YES' THEN 1
                      ELSE 0
                 END AS BIT) AS IsNullable,
            DATA_TYPE AS TypeName,
            ISNULL(CHARACTER_MAXIMUM_LENGTH, 0) AS [MaxLength],
            CAST(ISNULL(NUMERIC_PRECISION, 0) AS INT) AS [Precision],
            ISNULL(COLUMN_DEFAULT, '') AS [Default],
            CAST(ISNULL(DATETIME_PRECISION, 0) AS INT) AS DateTimePrecision,
            ISNULL(NUMERIC_SCALE, 0) AS Scale,
            CAST(COLUMNPROPERTY(OBJECT_ID(QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity') AS BIT) AS IsIdentity,
            CAST(CASE WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity') = 1 THEN 1
                      WHEN COLUMNPROPERTY(OBJECT_ID(QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME)), c.COLUMN_NAME, 'IsComputed') = 1 THEN 1
                      WHEN DATA_TYPE = 'TIMESTAMP' THEN 1
                      ELSE 0
                 END AS BIT) AS IsStoreGenerated,
            CAST(CASE WHEN pk.ORDINAL_POSITION IS NULL THEN 0
                      ELSE 1
                 END AS BIT) AS PrimaryKey,
            ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
            CAST(CASE WHEN fk.COLUMN_NAME IS NULL THEN 0
                      ELSE 1
                 END AS BIT) AS IsForeignKey
    FROM    INFORMATION_SCHEMA.COLUMNS c
            LEFT OUTER JOIN (SELECT u.TABLE_SCHEMA,
                                    u.TABLE_NAME,
                                    u.COLUMN_NAME,
                                    u.ORDINAL_POSITION
                             FROM   INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
                                    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
                                        ON u.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA
                                           AND u.TABLE_NAME = tc.TABLE_NAME
                                           AND u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
                             WHERE  CONSTRAINT_TYPE = 'PRIMARY KEY') pk
                ON c.TABLE_SCHEMA = pk.TABLE_SCHEMA
                   AND c.TABLE_NAME = pk.TABLE_NAME
                   AND c.COLUMN_NAME = pk.COLUMN_NAME
            LEFT OUTER JOIN (SELECT DISTINCT
                                    u.TABLE_SCHEMA,
                                    u.TABLE_NAME,
                                    u.COLUMN_NAME
                             FROM   INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
                                    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
                                        ON u.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA
                                           AND u.TABLE_NAME = tc.TABLE_NAME
                                           AND u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
                             WHERE  CONSTRAINT_TYPE = 'FOREIGN KEY') fk
                ON c.TABLE_SCHEMA = fk.TABLE_SCHEMA
                   AND c.TABLE_NAME = fk.TABLE_NAME
                   AND c.COLUMN_NAME = fk.COLUMN_NAME
            INNER JOIN INFORMATION_SCHEMA.TABLES t
                ON c.TABLE_SCHEMA = t.TABLE_SCHEMA
                   AND c.TABLE_NAME = t.TABLE_NAME
    WHERE c.TABLE_NAME NOT IN ('EdmMetadata', '__MigrationHistory')
    

    외래 키 SQL :

    SELECT  FK.name AS FK_Table,
            FkCol.name AS FK_Column,
            PK.name AS PK_Table,
            PkCol.name AS PK_Column,
            OBJECT_NAME(f.object_id) AS Constraint_Name,
            SCHEMA_NAME(FK.schema_id) AS fkSchema,
            SCHEMA_NAME(PK.schema_id) AS pkSchema,
            PkCol.name AS primarykey,
            k.constraint_column_id AS ORDINAL_POSITION
    FROM    sys.objects AS PK
            INNER JOIN sys.foreign_keys AS f
                INNER JOIN sys.foreign_key_columns AS k
                    ON k.constraint_object_id = f.object_id
                INNER JOIN sys.indexes AS i
                    ON f.referenced_object_id = i.object_id
                       AND f.key_index_id = i.index_id
                ON PK.object_id = f.referenced_object_id
            INNER JOIN sys.objects AS FK
                ON f.parent_object_id = FK.object_id
            INNER JOIN sys.columns AS PkCol
                ON f.referenced_object_id = PkCol.object_id
                   AND k.referenced_column_id = PkCol.column_id
            INNER JOIN sys.columns AS FkCol
                ON f.parent_object_id = FkCol.object_id
                   AND k.parent_column_id = FkCol.column_id
    ORDER BY FK_Table, FK_Column
    

    확장 속성 :

    SELECT  s.name AS [schema],
            t.name AS [table],
            c.name AS [column],
            value AS [property]
    FROM    sys.extended_properties AS ep
            INNER JOIN sys.tables AS t
                ON ep.major_id = t.object_id
            INNER JOIN sys.schemas AS s
                ON s.schema_id = t.schema_id
            INNER JOIN sys.columns AS c
                ON ep.major_id = c.object_id
                   AND ep.minor_id = c.column_id
    WHERE   class = 1
    ORDER BY t.name
    
  14. ==============================

    14.사용하다

    사용하다

    SELECT COL_LENGTH('tablename', 'colname')
    

    다른 솔루션 아무도 나를 위해 일하지 않는다.

  15. ==============================

    15.나는이 형식을 좋아한다 :

    나는이 형식을 좋아한다 :

    name     DataType      Collation             Constraints         PK  FK          Comment
    
    id       int                                 NOT NULL IDENTITY   PK              Order Line Id
    pid      int                                 NOT NULL                tbl_orders  Order Id
    itemCode varchar(10)   Latin1_General_CI_AS  NOT NULL                            Product Code
    

    그래서 나는 이것을 사용했습니다 :

    DECLARE @tname varchar(100) = 'yourTableName';
    
    SELECT  col.name,
    
            CASE typ.name
                WHEN 'nvarchar' THEN 'nvarchar('+CAST((col.max_length / 2) as varchar)+')'
                WHEN 'varchar' THEN 'varchar('+CAST(col.max_length as varchar)+')'
                WHEN 'char' THEN 'char('+CAST(col.max_length as varchar)+')'
                WHEN 'nchar' THEN 'nchar('+CAST((col.max_length / 2) as varchar)+')'
                WHEN 'binary' THEN 'binary('+CAST(col.max_length as varchar)+')'
                WHEN 'varbinary' THEN 'varbinary('+CAST(col.max_length as varchar)+')'
                WHEN 'numeric' THEN 'numeric('+CAST(col.precision as varchar)+(CASE WHEN col.scale = 0 THEN '' ELSE ','+CAST(col.scale as varchar) END) +')'
                WHEN 'decimal' THEN 'decimal('+CAST(col.precision as varchar)+(CASE WHEN col.scale = 0 THEN '' ELSE ','+CAST(col.scale as varchar) END) +')'
                ELSE typ.name
                END DataType,
    
            ISNULL(col.collation_name,'') Collation,
    
            CASE WHEN col.is_nullable = 0 THEN 'NOT NULL ' ELSE '' END + CASE WHEN col.is_identity = 1 THEN 'IDENTITY' ELSE '' END Constraints,
    
            ISNULL((SELECT 'PK'
                    FROM    sys.key_constraints kc INNER JOIN
                            sys.tables tb ON tb.object_id = kc.parent_object_id INNER JOIN
                            sys.indexes si ON si.name = kc.name INNER JOIN
                            sys.index_columns sic ON sic.index_id = si.index_id AND sic.object_id = si.object_id
                    WHERE kc.type = 'PK'
                      AND tb.name = @tname
                      AND sic.column_id = col.column_id),'') PK,
    
            ISNULL((SELECT (SELECT name FROM sys.tables st WHERE st.object_id = fkc.referenced_object_id)
                    FROM    sys.foreign_key_columns fkc INNER JOIN
                            sys.columns c ON c.column_id = fkc.parent_column_id AND fkc.parent_object_id = c.object_id INNER JOIN
                            sys.tables t ON t.object_id = c.object_id
                    WHERE t.name = tab.name
                      AND c.name = col.name),'') FK,
    
            ISNULL((SELECT value
                    FROM sys.extended_properties
                    WHERE major_id = tab.object_id
                      AND minor_id = col.column_id),'') Comment
    
    FROM sys.columns col INNER JOIN
         sys.tables tab ON tab.object_id = col.object_id INNER JOIN
         sys.types typ ON typ.system_type_id = col.system_type_id
    WHERE tab.name = @tname
      AND typ.name != 'sysname'
    ORDER BY col.column_id;
    
  16. ==============================

    16.

    SELECT C.COLUMN_NAME, C.IS_NULLABLE, C.DATA_TYPE, TC.CONSTRAINT_TYPE, C.COLUMN_DEFAULT
        FROM INFORMATION_SCHEMA.COLUMNS AS C
        FULL JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS CC ON C.COLUMN_NAME = CC.COLUMN_NAME 
        FULL JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC ON CC.CONSTRAINT_NAME = TC.CONSTRAINT_NAME
    WHERE C.TABLE_NAME = '<Table Name>';
    

    샘플 출력

  17. ==============================

    17.당신이 브렌트 Ozar 팀에서 FirstResponderKit를 사용하는 경우, 당신은 또한이 쿼리를 실행할 수 있습니다 :

    당신이 브렌트 Ozar 팀에서 FirstResponderKit를 사용하는 경우, 당신은 또한이 쿼리를 실행할 수 있습니다 :

    exec sp_blitzindex @tablename='MyTable'
    

    이 테이블에 대한 모든 정보를 반환합니다 :

    물론 그것은 시스템이 아닌 sp_help는 나 sp_columns 같은 보편적 인 STP은 아니지만, 테이블에 대한 모든 가능한 정보를 반환하고 나는 그것의 가치는 사용자의 환경에 그것을 만들고 여기 언급 생각합니다.

  18. ==============================

    18.그냥 두 번 테이블 이름과하고 Alt + F1을 클릭

    그냥 두 번 테이블 이름과하고 Alt + F1을 클릭

  19. ==============================

    19.

    CREATE PROCEDURE [dbo].[describe] 
    ( 
    @SearchStr nvarchar(max) 
    ) 
    AS 
    BEGIN 
    SELECT  
        CONCAT([COLUMN_NAME],' ',[DATA_TYPE],' ',[CHARACTER_MAXIMUM_LENGTH],' ', 
        (SELECT CASE [IS_NULLABLE] WHEN 'NO' THEN 'NOT NULL' ELSE 'NULL' END),
        (SELECT CASE WHEN [COLUMN_DEFAULT] IS NULL THEN '' ELSE CONCAT(' DEFAULT ',[COLUMN_DEFAULT]) END)
        ) AS DESCRIPTION
        FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE @SearchStr
    END 
    
  20. from https://stackoverflow.com/questions/319354/what-is-the-equivalent-of-describe-table-in-sql-server by cc-by-sa and MIT license