不藏私之二,要用快捷键。
不知道大家平时都用不用sql server的快捷键。
但对我来说这太重要了。
当我们在编写存储过程或程序的时候,要想看一个表的内容怎么办。
当我们在编写插入,选择语句的时候,想要得到一个表的字段列表怎么办。
这些最好的办法都是用sql server的快捷键来进行操作。
我介绍一下我常用的这么几个。
1、ctrl + 0 键,我一般都用来查看一个表的内容。
我们在master里建一个存储过程,大致如下。
create procedure sp_select
@tmpstr varchar(200)
as
exec('select * from ' + @tmpstr)
然后在查询分析器里进入自定义中,将ctrl + 0处增加一个sp_select,
加好了之后,我们在查询分析器随便打开一个存储过程,选中一个表名,然后按下
ctrl+0键,看到了吧,会将该表的内容全部显示。
2、ctrl + 9 键,我一般都用来查看一个表的结构。
我们现在已经摆脱了select * 不用*的习惯,但随之而来的将所有的字段列出来会让大家
非常的苦恼。因此,需要将字段全部列出来的东西
用这个
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER procedure sp_getfields
@tablename varchar(20)
as
declare tmpCursor cursor for
select name from syscolumns where id = Object_ID(@tablename)
open tmpCursor
declare @fieldname varchar(50)
declare @sqlstr1 varchar(250)
declare @sqlstr2 varchar(250)
set @fieldname = ''
set @sqlstr1 = ''
set @sqlstr2 = ''
fetch next from tmpCursor into @fieldname
while @@fetch_status = 0
begin
if len(@sqlstr1) < 250 - len(@fieldname)
set @sqlstr1 = @sqlstr1 + @fieldname + ','
else
set @sqlstr2 = @sqlstr2 + @fieldname + ','
fetch next from tmpCursor into @fieldname
end
close tmpCursor
Deallocate tmpCursor
if @sqlstr2 = ''
set @sqlstr1 = left(@sqlstr1, len(@sqlstr1) -1)
else
set @sqlstr2 = left(@sqlstr2, len(@sqlstr2) -1)
select @sqlstr1
if @sqlstr2 <> ''
select @sqlstr2
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
3、ctrl + 8键,搜索哪个存储过程或触发器用了某个表,最简单的就是这了
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ALTER procedure sp_search
@string varchar(200)
as
select object_name(id) as 名称, text as 内容 from syscomments
where text like '%'+@string+'%'
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO