SQL SERVER在存储过程中连接其他数据库
--访问不同电脑上的数据库
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
相关文档:
纵表转横表的"SQL"示例:
纵表结构:
fname ftype fvalue
小乔 zaocan 10
小乔 zhongcan 20
小乔 wancan 5
转换后的表结构:
fname zaocan_value zhongcan_value wancan_value
小乔 10 20 5
纵表转横表SQL示例:
select Fname, sum(case ......
最近遇到一个问题,在操作SQL更新账户余额时,常常发现更新后的余额与实际的不相符,马上想到了是不是存在并发更新,一查果然如此。之前也曾遇到过这样的问题,当时没太在意,现在是解决的时候了。用Mysql模拟了一下这个过程:创建两张表,paralltable和parallalter,每次根据paratable表更新parallalte ......
触发器
触发器是一种特殊类型的存储过程,它不同前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器是一个功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于SQL Server约束、默认值和规则的完整性检查。
当往某一 ......
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0 ......