作为一个"浸淫" 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. jdk1.9之前的版本及jdk1.9环境变量的配置

    一.jdk9之前安装配置 1.下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.配置环境变量: 安装 ...

  2. <---------------------装箱,拆箱的过程-------------------------->

    基本类型包装类: 程序界面用户输入的数据都是以字符串类型存储的,转换成基本数据类型. 八种基本类型对应的包装类: 装箱和拆箱: public class InterDemo { public stat ...

  3. 从后端接口下载文件的2种方式:get方式、post方式

    从后端接口下载文件的2种方式 一.get方式 直接使用: location.href='http://www.xxx.com/getFile?params1=xxx&params2=xxxx' ...

  4. java-http通信调用与创建

    java项目使用HTTP的请求.主要有两种方式:①使用JDK自带的java.net包下的HttpURLConnection方式. ②使用apache的HttpClient方式. 一.使用JDK自带的j ...

  5. SSH框架搭建demo

    1.新建Java Web工程 2.添加Struts2.1框架支持 去除冲突包:antlr-2.7.2.jar 一般项目加上这三个包足够,后期可以视项目需求增加支持包: 2.1配置web.xml文件 增 ...

  6. Error: spawn EACCES

    执行sudo cordova emulate ios: 错误: Running command: /Users/frank/xx/hybird_web/hooks/after_prepare/010_ ...

  7. mongodb morphia删除数组中指定条件的数据

    先看mongodb操作: db.test.update({"msgid":170},{"$pull":{"msg":{"comti ...

  8. TextBox限制输入字母、数字、退格键

    公共方法如下: /// <summary> /// 正则表达式验证只能输入数字或字母 /// </summary> /// <param name="pendi ...

  9. esp8266尝鲜

    请将当前用户添加到dialout组,否则会提示打开/dev/ttyUSB0权限不足 sudo usermod -a -G dialout `whoami` dmeg查看驱动安装信息 dmesg | g ...

  10. git初始化项目 以及 git常用操作

    初始化项目 $ git config --global user.name "Your Name"  配置用户名 $ git config --global user.email ...