• 工作T-SQL备忘


    作为一个"浸淫" Oracle 数据库很久的人来说, 突然转入 T-SQL, 也就是 MSSQL , 工作中经常用的查询和 MSMS 使用备忘如下 :

    --1. 切换对应的库连接
    USE CYBPMCOSTDB1041_Dev
    --2. 查看存储过程内容
    SP_HELPTEXT 'V0DataDict' 
    --3. 查看表列内容
    sp_columns	'A1Org'
    --4. 查看数据库表描述, 行列转换过, 可以看到包括备注之类(自定义视图, 后面附视图内容)
    SELECT *FROM dbo.V0DataDict WHERE name='A1Org'
    --5.
    --执行带输出参数的存储过程
    DECLARE @p_RecTotal int
    EXEC PM1SpecialEqptRegisterPage
    @p_OrgID = 'ED6989D2-B7CB-478B-9E37-D0C15D720D6A',
    @p_ManageCode = '',
    @p_FilterStr='',
    @p_PageIndex = 0,
    @p_PageSize= 25,
    @p_OrderField = 'BizDate',
    @p_OrderType = 1,
    @p_IsLargeEqpt = -1,
    @p_RecTotal = @p_RecTotal OUT
    SELECT @p_RecTotal
    
    • 附上对应视图的内容
    SET QUOTED_IDENTIFIER ON;
    SET ANSI_NULLS ON;
    GO
    CREATE VIEW [V0DataDict]
    AS
        SELECT TOP 100 PERCENT
                *
        FROM    ( SELECT    ISNULL(CAST(UserTable.value AS VARCHAR(256)), '') AS 表名 ,
                            REPLACE(REPLACE(REPLACE(CAST(UserTableColumn.value AS VARCHAR(256)),
                                                    ' ', ''), CHAR(13), ''),
                                    CHAR(10), '') AS 列名 ,
                            UserTableColumn.colname AS 列编码 ,
                            CAST(UserTableColumn.colid AS VARCHAR(10)) AS 列序 ,
                            UserTableColumn.IsPKey AS 主键 ,
                            UserTableColumn.typename AS 数据类型 ,
                            CAST(UserTableColumn.length AS VARCHAR(10)) AS 宽度 ,
                            CASE WHEN UserTableColumn.typename NOT IN ( 'decimal',
                                                                  'numeric',
                                                                  'money',
                                                                  'smallmoney',
                                                                  'float', 'real' )
                                 THEN ''
                                 ELSE CAST(ISNULL(UserTableColumn.scale, '') AS VARCHAR(10))
                            END AS 小数位 ,
                            CASE WHEN UserTableColumn.typename NOT IN ( 'decimal',
                                                                  'numeric',
                                                                  'money',
                                                                  'smallmoney',
                                                                  'float', 'real' )
                                 THEN ''
                                 ELSE CAST(ISNULL(UserTableColumn.prec, '') AS VARCHAR(10))
                            END AS 精度 ,
                            ISNULL(CONVERT(VARCHAR(256), UserTableColumn.text), '') AS 默认值 ,
                            ISNULL(CASE CONVERT(BIT, ( UserTableColumn.status & 8 ))
                                     WHEN 1 THEN '是'
                                     ELSE ''
                                   END, '') AS 可空 ,
                            ISNULL(CASE CONVERT(BIT, ( UserTableColumn.status
                                                       & 0x80 ))
                                     WHEN 1 THEN '是'
                                     ELSE ''
                                   END, '') AS 自增长 ,
                            UserTable.name ,
                            3 AS ListOrder ,
                            UserTableColumn.colid
                  FROM      ( SELECT    sys.sysobjects.id ,
                                        sys.sysobjects.name ,
                                        sys.extended_properties.value
                              FROM      sys.sysobjects
                                        LEFT OUTER JOIN sys.extended_properties ON sys.extended_properties.major_id = sys.sysobjects.id
                                                                  AND sys.extended_properties.minor_id = 0
                              WHERE     sys.sysobjects.type = 'U' /*and 
                       convert( varchar(10), sys.sysobjects.crdate, 121 ) = convert( varchar(10), getdate(), 121 )*/
                            ) UserTable
                            INNER JOIN ( SELECT sys.syscolumns.id ,
                                                sys.syscolumns.colid ,
                                                sys.syscolumns.name AS colname ,
                                                sys.extended_properties.value ,
                                                sys.systypes.name AS typename ,
                                                sys.syscolumns.length ,
                                                sys.syscolumns.scale ,
                                                sys.syscolumns.prec ,
                                                sys.syscomments.text ,
                                                sys.syscolumns.status ,
                                                PKeyColumns.object_id ,
                                                PKeyColumns.column_id ,
                                                CASE WHEN PKeyColumns.column_id IS NULL
                                                     THEN ''
                                                     ELSE '是'
                                                END AS IsPKey
                                         FROM   sys.syscolumns
                                                LEFT OUTER JOIN sys.syscomments ON sys.syscolumns.cdefault = sys.syscomments.id
                                                LEFT OUTER JOIN sys.systypes ON ( sys.syscolumns.usertype = sys.systypes.usertype )
                                                                  AND ( sys.syscolumns.xusertype = sys.systypes.xusertype )
                                                LEFT OUTER JOIN sys.extended_properties ON sys.extended_properties.major_id = sys.syscolumns.id
                                                                  AND sys.extended_properties.minor_id = sys.syscolumns.colid
                                                LEFT OUTER JOIN ( SELECT
                                                                  sys.index_columns.object_id ,
                                                                  sys.index_columns.column_id
                                                                  FROM
                                                                  sys.index_columns
                                                                  INNER JOIN sys.indexes ON sys.indexes.index_id = sys.index_columns.index_id
                                                                  AND sys.indexes.object_id = sys.index_columns.object_id
                                                                  WHERE
                                                                  sys.indexes.is_primary_key = 1
                                                                ) PKeyColumns ON PKeyColumns.object_id = sys.syscolumns.id
                                                                  AND PKeyColumns.column_id = sys.syscolumns.colid
                                       ) UserTableColumn ON UserTableColumn.id = UserTable.id
                  UNION ALL
                  SELECT TOP 100 PERCENT
                            '' AS 表名 ,
                            ISNULL(CAST(sys.extended_properties.value AS VARCHAR(256)),
                                   '') AS 列名 ,
                            sys.sysobjects.name AS 列编码 ,
                            '' AS 列序 ,
                            '' AS 主键 ,
                            '' AS 数据类型 ,
                            '' AS 宽度 ,
                            '' AS 小数位 ,
                            '' AS 精度 ,
                            '' AS 默认值 ,
                            '' AS 可空 ,
                            '' AS 自增长 ,
                            sys.sysobjects.name ,
                            1 AS ListOrder ,
                            0 AS colid
                  FROM      sys.sysobjects
                            LEFT OUTER JOIN sys.extended_properties ON sys.extended_properties.major_id = sys.sysobjects.id
                                                                  AND sys.extended_properties.minor_id = 0
                  WHERE     sys.sysobjects.type = 'U' --and 
                       --convert( varchar(10), sys.sysobjects.crdate, 121 ) = convert( varchar(10), getdate(), 121 ) 
                  UNION ALL
                  SELECT TOP 100 PERCENT
                            '表名' AS 表名 ,
                            '列名' AS 列名 ,
                            '列编码' AS 列编码 ,
                            '列序' AS 列序 ,
                            '主键' AS 主键 ,
                            '数据类型' AS 数据类型 ,
                            '宽度' AS 宽度 ,
                            '小数位' AS 小数位 ,
                            '精度' AS 精度 ,
                            '默认值' AS 默认值 ,
                            '可空' AS 可空 ,
                            '自增长' AS 自增长 ,
                            sys.sysobjects.name ,
                            2 AS ListOrder ,
                            0 AS colid
                  FROM      sys.sysobjects
                            LEFT OUTER JOIN sys.extended_properties ON sys.extended_properties.major_id = sys.sysobjects.id
                                                                  AND sys.extended_properties.minor_id = 0
                  WHERE     sys.sysobjects.type = 'U' --and 
                       --convert( varchar(10), sys.sysobjects.crdate, 121 ) = convert( varchar(10), getdate(), 121 ) 
                  UNION ALL
                  SELECT TOP 100 PERCENT
                            '' AS 表名 ,
                            '' AS 列名 ,
                            '' AS 列编码 ,
                            '' AS 列序 ,
                            '' AS 主键 ,
                            '' AS 数据类型 ,
                            '' AS 宽度 ,
                            '' AS 小数位 ,
                            '' AS 精度 ,
                            '' AS 默认值 ,
                            '' AS 可空 ,
                            '' AS 自增长 ,
                            sys.sysobjects.name ,
                            4 AS ListOrder ,
                            0 AS colid
                  FROM      sys.sysobjects
                            LEFT OUTER JOIN sys.extended_properties ON sys.extended_properties.major_id = sys.sysobjects.id
                                                                  AND sys.extended_properties.minor_id = 0
                  WHERE     sys.sysobjects.type = 'U' /*and 
             convert( varchar(10), sys.sysobjects.crdate, 121 ) = convert( varchar(10), getdate(), 121 ) */
                ) A
        WHERE   A.name LIKE '[A-Z][0-9]%'
        ORDER BY A.name ASC ,
                A.ListOrder ASC ,
                A.colid ASC; 
    
    GO
    
    • 另外发现很多人或者我这种半路开始使用MSSQL的经常误区. 如图所示:
      • 一般来说刚打开自动登陆的就是对象浏览器. 至于当前界面查询使用哪个链接 是分开的. 不然一直在对象浏览器里面切来切去, 是跟当前查询没有任何关系的.

  • 相关阅读:
    jquery插件开发
    五种常见的 PHP 设计模式
    linux常用命令
    解决MySQL不允许从远程访问的方法
    模块化的JavaScript开发的优势在哪里
    巧用C#做中间语言 实现Java调用.net DLL
    PHP Predefined Interfaces 预定义接口
    想追赶.Net的脚步?Java面前障碍重重
    修改一行SQL代码 性能提升了N倍
    如何使用LoadRunner监控Windows
  • 原文地址:https://www.cnblogs.com/hijushen/p/6737025.html
Copyright © 2020-2023  润新知