10:获取某一个表的所有字段
select name from syscolumnswhere id=object_id('表名')
select name from syscolumnswhere idin (select idfrom sysobjectswhere type
= 'u' and name ='表名')
两种方式的效果相同
11:查看与某一个表相关的视图、存储过程、函数
select a.*from sysobjects
a, syscomments b where a.id
= b.id and b.textlike '%表名%'
12:查看当前数据库中所有存储过程
select name as 存储过程名称from sysobjectswhere xtype='P'
13:查询用户创建的所有数据库
select *from master..sysdatabases
D where sidnot in(select sidfrom master..sysloginswhere name='sa')
或者
select dbid,name AS DB_NAMEfrom master..sysdatabaseswhere sid
<> 0x01
14:查询某一个表的字段和数据类型
select column_name,data_typefrom information_schema.columns
where table_name
= '表名'
15:不同服务器数据库之间的数据操作
--创建链接服务器
exec sp_addlinkedserver 'ITSV
','
','SQLOLEDB
','远程服务器名或ip地址
'
exec sp_addlinkedsrvlogin 'ITSV
','false
',null,'用户名
','密码
'
--查询示例
select *from ITSV.数据库名.dbo.表名
--导入示例
select *into 表from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV
','droplogins
'
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select *from openrowset('SQLOLEDB
','sql服务器名
';'用户名
';'密码
',数据库名.dbo.表名)
--生成本地表
select *into 表from openrowset('SQLOLEDB
','sql服务器名
';'用户名
';'密码
',数据库名.dbo.表名)
--把本地表导入远程表
insert openrowset('SQLOLEDB
','sql服务器名
';'用户名
';'密码
',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列A=a.列A
from openrowset('SQLOLEDB
','sql服务器名
';'用户名
';'密码
',数据库名.dbo.表名)as ainner join 本地表
b
on a.column1=b.column1
--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV
','
','SQLOLEDB
','远程服务器名或ip地址
'
--查询
select *
FROM openquery(ITSV, 'SELECT
* FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT
* FROM 数据库.dbo.表名 ')
select *from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT
* FROM 数据库.dbo.表名 ')as a
inner join 本地表
b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
FROM opendatasource('SQLOLEDB
', 'Data
Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
--把本地表导入远程表
insert opendatasource('SQLOLEDB
', 'Data
Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名
select *from 本地表
SQL
Server基本函数
SQL
Server基本函数
1.字符串函数
长度与分析用
1,datalength(Char_expr)
返回字符串包含字符数,但不包含后面的空格
2,substring(expression,start,length)
取子串 , 字符串的下标是从“1” , start为起始位置 , length为字符串长度 , 实际应用中以len(expression)取得其长度
3,right(char_expr,int_expr)
返回字符串右边第int_expr个字符 , 还用left于之相反
4,isnull(
check_expression , replacement_value )如果check_expression為空 , 則返回replacement_value的值 , 不為空 , 就返回check_expression字符操作类
5,Sp_addtype
自定義數據類型
例如:EXEC sp_addtype
birthday, datetime, 'NULL'
6,set nocount
{on|off}
使返回的结果中不包含有关受
Transact-SQL 语句影响的行数的信息 。如果存储过程中包含的一些语句并不返回许多实际的数据 , 则该设置由于大量减少了网络流量 , 因此可显著提高性能 。SETNOCOUNT
推荐阅读
- SQL语法——左连接 LEFT JOIN 关键字
- MySQL 中使用 JPA + Hibernate 的 9 个高性能技巧
- MySQL全面优化,速度飞起来
- 深入探讨 MySQL 的 order by 优化
- 程序员经典面试题,谈一谈Mysql中的事务
- Sql Or NoSql?看完之后你就应该懂了
- Linux安装Mysql解决中文乱码
- mysql典型的超时异常你见过几种?
- 一文看懂mysql两种join连接算法--NLJ和BNL
- mysql 大批量插入解决方案