SQL显示某表的字段名和说明备注

Select A.name As 字段名,C.value As 说明
From syscolumns A
Inner Join sysobjects B on A.id=B.id
Left Join sys.extended_properties C on A.id=c.major_id and a.colid=C.minor_id Where B.name='User_Order'

Posted in 数据库 at March 20, 2017. by 傻猫 .    Views: 2444    No Comments

sql判断存储过程是否存在

1 判断数据库教程是否存在
Sql代码
if exists (select * from sys.databases where name = ’数据库名’)
drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’)
drop database [数据库名]

2 判断表是否存在
Sql代码
if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [表名] if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [表名]

查看更多内容...

Posted in 数据库 at May 18, 2016. by 傻猫 .    Views: 4037    No Comments

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

  1.INSERT INTO SELECT语句

  语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

  要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

2.SELECT INTO FROM语句

  语句形式为:SELECT vale1, value2 into Table2 from Table1

  要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:
Posted in 数据库 at December 4, 2014. by 傻猫 .    Views: 3833    No Comments

mssql查询所有表和所有表记录数

select object_name(id) as tablename,rows from sysindexes
where id in (select id from sysobjects where xtype='U') and indid in (0,1)

Posted in 数据库 at April 9, 2014. by 傻猫 .    Views: 3656    No Comments

SQL优化-关于max degree of parallelism 选项

当 SQL Server 2005 在具有多个微处理器或 CPU 的计算机上运行时,它将为每个并行计划执行检测最佳并行度(即运行一个语句所使用的处理器数)。您可以使用 max degree of parallelism 选项来限制并行计划执行时所用的处理器数。如果默认值为 0,则使用所有可用的处理器。将 max degree of parallelism 设置为 1 以取消生成并行计划。将该值设置为大于 1 的数字(最大为 64)来限制执行单个查询时所用的最大处理器数。如果指定的值比可用的处理器数大,则使用实际可用数量的处理器。如果计算机只有一个处理器,则将忽略 max degree of parallelism 值。

查看更多内容...

Posted in 数据库 at February 7, 2014. by 傻猫 .    Views: 3450    No Comments

SQL2008数据库优化常用脚本

--查询某个数据库的连接数
select count(*) from Master.dbo.SysProcesses where dbid=db_id()

--前10名其他等待类型
SELECT TOP 10 * from sys.dm_os_wait_stats
ORDER BY wait_time_ms DESC

SELECT *FROM sys.dm_os_wait_stats WHERE wait_type like 'PAGELATCH%'
OR wait_type like 'LAZYWRITER_SLEEP%'

--CPU的压力
SELECT scheduler_id, current_tasks_count, runnable_tasks_count
FROM sys.dm_os_schedulers
WHERE scheduler_id < 255

查看更多内容...

Posted in 数据库 at February 7, 2014. by 傻猫 .    Views: 3636    No Comments

SQL查询数据库表名、表的列名

--读取库中的所有表名
select name from sysobjects where xtype='u'

--读取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
获取数据库表名和字段
sqlserver中各个系统表的作用
    sysaltfiles      主数据库                  保存数据库的文件
syscharsets      主数据库                  字符集与排序顺序
sysconfigures    主数据库                  配置选项
syscurconfigs    主数据库                  当前配置选项
sysdatabases      主数据库                  服务器中的数据库
syslanguages      主数据库                  语言
syslogins        主数据库                  登陆帐号信息
sysoledbusers    主数据库                  链接服务器登陆信息
sysprocesses      主数据库                  进程
sysremotelogins主数据库                  远程登录帐号

syscolumns        每个数据库                列
sysconstrains    每个数据库                限制
sysfilegroups    每个数据库                文件组
sysfiles          每个数据库                文件
sysforeignkeys 每个数据库                外部关键字
sysindexs        每个数据库                索引
sysmenbers        每个数据库                角色成员
sysobjects        每个数据库                所有数据库对象
syspermissions 每个数据库                权限
systypes          每个数据库                用户定义数据类型
sysusers          每个数据库                用户

//
用什么方法可以得到一个表中所有的列名。SQl语句。
select      列名=name      from      syscolumns      where      id=object_id(N'要查的表名')

Posted in 数据库 at December 16, 2013. by 傻猫 .    Views: 3933    No Comments

二维表实现三级组织视图

Select 流水号,类型,名称,
营业厅=
(
  case when 类型='网点' then (select  name from aipu_BigType where sid=v_area.上级编号)
  end
),
分公司=
(
  case when 类型='营业厅' then (select  name from aipu_BigType where sid=v_area.上级编号)
       when 类型='网点' then (select name from aipu_BigType where sid=(select code from aipu_BigType where sid=v_area.上级编号))
  end
)

,编号,上级编号,创建时间,修改时间,修改者 from V_area

Posted in 软件开发 at November 14, 2012. by 傻猫 .    Views: 4761    No Comments