作为一个"浸淫" 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的经常误区. 如图所示:

    • 一般来说刚打开自动登陆的就是对象浏览器. 至于当前界面查询使用哪个链接 是分开的. 不然一直在对象浏览器里面切来切去, 是跟当前查询没有任何关系的.

工作T-SQL备忘的更多相关文章

  1. 一些性能查询的SQL 备忘

    --检查数据库的等待事件 from v$session_waitwhere event not like 'SQL%' and event not like 'rdbms%' --找出系统中耗时的操作 ...

  2. DB&SQL备忘

    DB2最佳分页语句 SELECT * FROM ( SELECT inner2_.*, ROWNUMBER() OVER(ORDER BY ORDER OF inner2_) AS rownumber ...

  3. sql 备忘

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; select dbms_metadata.get_ddl('TABLE','TAB ...

  4. Sql 备忘——行号

    SELECT row_number() over(order by Product.ID) as [row_number]

  5. 2019-07-06 sql备忘 连续取最大

    连续最大: SELECT M.* FROM #temp MINNER JOIN (SELECT ISNULL(A.score,0)-b.score AS score,B.id FROM #temp A ...

  6. Mysql又一次整理笔记--woods备忘

    ==============================SQL备忘 CRUD 查询 多表 事件等=============================== ------------------ ...

  7. SQL Server修改标识列方法(备忘)

    原文:SQL Server修改标识列方法(备忘) SQL Server修改标识列方法 ----允许对系统表进行更新 exec sp_configure 'allow updates',1 reconf ...

  8. 工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...

  9. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

随机推荐

  1. python, 用filter实现素数

    # _*_ coding:utf-8 _*_ #step1: 生成一个序列def _odd_iter(): n = 1 while True: n = n + 1 yield n #Step2: 定义 ...

  2. 基于 debian:stretch-slim 系统镜像的 docker 镜像,安装 curl

    依次运行如下命令: apt-get update apt-get install curl

  3. JavaScript跟踪-Piwik

    1.先决条件:使用新版本的JavaScript跟踪代码 2.JavaScript跟踪代码的功能 (1)自定义在Piwik中显示的页面名称 (2)手动触发目标转化 (3)考虑一个主机的“别名”,不将这个 ...

  4. delphi内存映射 与 映射数据获取

      一.原理     通过使用“内存映射文件”,实现内存共享 二.主要操作     共享内存结构: PShareMem = ^TShareMem; TShareMem = Record id:stri ...

  5. Debian下Netbeans编辑器字体锯齿现象

    第一步:到你netbeans安装目录下的etc目录下,找到netbeans.conf文件,打开准备编辑:第二步:在netbeans_default_options后面加上-J-Dawt.useSyst ...

  6. android 逆向

    用到两个工具 :dex2jar和jd-gui 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex: 2,解压dex2jar-0.0 ...

  7. Thinkphp 缓存和静态缓存局部缓存设置

    1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...

  8. Maven 之多模块构建

    项目的打包类型:pom.jar.war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系.项目模块化可以将通用的部分抽离出来,方便重 ...

  9. GetPostBackEventReference加RaisePostBackEvent实现自定义控件中回调传参

    ; //回调函数,回调参数值:eventArgument        public void RaisePostBackEvent(string eventArgument)        {    ...

  10. QT编写的网页浏览器网页乱码解决方法

    1.如果是本地网页,可以将网页编码改为GB2312 <meta http-equiv="Content-Type" content="text/html; char ...