12:查看当前数据库中所有存储过程select name as 存储过程名称 from sysobjects where xtype='P'
13:查询用户创建的所有数据库select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa') 或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01 14:查询某一个表的字段和数据类型select column_name,data_type from information_schema.columns where table_name = '表名'
[n].[标题]:Select * From TableName Order By CustomerName [n].[标题]:Select * From TableName Order By CustomerName
from:http://tb.blog.csdn.net/TrackBack.aspx?PostId=585515
触发器-MSSQL常用操作
发表人:kendy517 | 发表时间: 2007年二月09日, 09:18
不再新开文章.
这里只打算讲解四部分了,也就最简单、最常用的四部分。
1、触发器。
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义
了新的触发器,这里不提)
我为什么要使用触发器?比如,这么两个表:
Create Table Student( --学生表 StudentID int primary key, --学号 .... )
Create Table BorrowRecord( --学生借书记录表 BorrowRecord int identity(1,1), --流水号 StudentID int , --学号
BorrowDate datetime, --借出时间 ReturnDAte Datetime, --归还时间 ... )
用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。 等等。
这时候可以用到触发器。对于1,创建一个Update触发器:
Create Trigger truStudent On Student for Update
As
if Update(StudentID) begin
Update BorrowRecord Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i Where br.StudentID=d.StudentID end
理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表―旧的一条记录‖和―新的一条记录‖。
一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。
对于2,创建一个Delete触发器 Create trigger trdStudent On Student for Delete As
Delete BorrowRecord
From BorrowRecord br , Delted d Where br.StudentID=d.StudentID
从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。 这里我们只讲解最简单的触发器。复杂的容后说明。
事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被―级联‖所替代.
MSSQL数据库导出和导入
SQL Server导出导入数据方法
一、导出导入SQL Server里某个数据库
1. 在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
2. 备份 选数据库-完全, 目的 备份到 按添加按钮 文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak) 重写 选重写现有媒体 最后按确定按钮。 如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
3. 通过FTP或者remote desktop或者pcanywhere等方法 把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。 4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库; 然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库 还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定 还原备份集->数据库-完全 最后按确定按钮。完全的数据库导入成功了。 (如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败, 可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁, 然后再做还原)
注意:
如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库 会把已经存在的表、存储过程等数据库对:象全部替换成最近这次导入的备份数据库里的内容。 如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库, 其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致; 新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。
二、导出导入SQL Server里某个表
1. 没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问 在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导入数据-> 弹出数据转换服务导入/导出向导窗口->下一步-> 选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)-> 服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)-> 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)-> 数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步-> 选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)-> 服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)-> 目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步-> 制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步-> 选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)-> 转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等, 并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步-> 保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)-> 保存(可以不选)->[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来, 存到SQL Server即可,