摘要:
经常会听到一些开发的朋友说,Update语句的操作原理是:先删后加!今天偶然想起这句话,索性验证一下。参考下面示例:USE CSDNgo--新添加一个文件组和文件ALTER DATABASE CSDN ADD FILEGROUP fg20140313goALTER DATABASE CSDNADD FILE( NAME = 'fg20140313', FILENAME = 'd:\db\fg20140313.ndf') TO FILEGROUP fg20140313go--创建测试表:UpdatePageIF OBJECT_ID('dbo.UpdateP 阅读全文
摘要:
相信,大家对sp_helptext存储过程一定不陌生,它可以帮你快速获取存储过程等对象的定义。但它有一个致命的缺点就是:每行最多返回255个nvarchar类型的字符,假如有一个编写不规范的存储过程,它的某些行超出了255,则取出的定义内容,很可能出错。其实,对象的定义都已经完整地存储在它所在数据库的sys.sql_modules视图中(兼容性视图为:sys.syscomments),下面介绍一个小方法来解决这个问题:USE tempdbGO--创建测试存储过程CREATE PROC dbo. Demo1 @Length INTASSET NOCOUNT ONIF(@Lengt... 阅读全文
摘要:
打开SQL Server Mangement Studio,然后依次打开:工具->选项->环境->键盘->查询快捷方式,大家可以看到,SSMS已经自带了12个快捷键,其中3个已经有了定义。善用这些快捷方式,分析对象时会让你有行云流水般的感觉,下面我就介绍几个常用的快捷键快捷方式存储过程说明Alt + F1sp_help查看对象帮助信息(默认设置)Ctrl + F1sp_helptext查看对象定义信息,配合Ctrl+T(以文本形式显示查询结果),可快速获取对象的定义内容Ctrl + 1sp_who查看SQL Server进程信息(默认设置)Ctrl + 2sp_lock 阅读全文
摘要:
背景 在编写存储过程时,难免会用到表变量或临时表,定义的字段类型一般都要求和源数据表一致或兼容。当字段数量少时,我们手工敲出来就OK了,但当字段比较多且来源于多张数据表时,就得费些时间了,且易出错,下面介绍一个小方法来解决这个问题。方案 #1.大家都知道SELECT ... INTO #new_table FROM ... 语法。INTO后生成的新表#new_table中的字段类型会与SELECT字段列表中的字段类型一致或兼容。 #2.从系统表中取出#new_table表的字段类型。示例USE tempdbGO--创建2个测试表IF OBJECT_ID('table1', 阅读全文
摘要:
理解T-SQL的逻辑查询顺序是学习SQL Server的基础。 T-SQL逻辑执行顺序 (8) SELECT (9) DISTINCT (11) (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) WITH {CUBE | ROLLUP} (7) HAVING (10) ORDER BY 注释 (1) 执行笛卡尔乘积。如果有多个表JOIN, 则逻辑执行顺序可以理解成: 先执行INNER JOIN, 再执行OUTER JOIN;或者理解成:按表出现的顺序逐个JOIN。当然,实际的执行顺序有赖于实... 阅读全文