2014年4月 的存档
2014四月26

自动安装sqlserver2012及补丁

1,配置ini文件,即是手工安装中上一步下一步中做的设置
ini文件关键点说明:
SQLSYSADMINACCOUNTS=".\Administrator"指明了使用当前机器的计算机名,这样就不会因为第一台机器的计算机名复制到其他机器里

FEATURES=SQLENGINE,REPL…:指定要安装、卸载或升级的功能。

安装全部功能
FEATURES=SQLENGINE,REPLICATION,FULLTEXT,DQ,AS,RS,DQC,BIDS,CONN,IS,BC,SDK,BOL,SSMS,ADV_SSMS,DREPLAY_CTLR,DREPLAY_CLT,SNAC_SDK
安装除了Analysis Services,Reporting Services – Native,Reporting Services – SharePoint,Reporting Services Add-in for SharePoint Productsa,Integration Services功能
FEATURES=SQLENGINE,REPLICATION,FULLTEXT,DQ,DQC,CONN,BC,SDK,BOL,SSMS,ADV_SSMS,DREPLAY_CTLR,DREPLAY_CLT,SNAC_SDK,MDS
 
对应列表如下:Feature list
 
 

2,执行cmd命令安装

mkdir "d:\Program Files\Microsoft SQL Server"
mkdir "d:\Program Files (x86)\Microsoft SQL Server"
mkdir "d:\Program Files (x86)\Microsoft SQL Server\DReplayClient\ResultDir"
mkdir "d:\Program Files (x86)\Microsoft SQL Server\DReplayClient\WorkingDir"
.\SQLFULL_x64_CHS\Setup.exe /qs /ACTION=Install /SAPWD="passwordxxxxxxxxxxxxxxx123!$^"  /PID="FH666-Y346V-7XFQ3-V69JM-RHW28"  /IACCEPTSQLSERVERLICENSETERMS   /ConfigurationFile="sql2012.ini"

 
/q:完全没有界面
 
/qs:有界面,界面只是作为显示进度的用途
 
/IACCEPTSQLSERVERLICENSETERMS:接受许可条款
 
/PID:产品密钥  指定 SQL Server 版本的产品密钥。如果未指定此参数,则将使用 Evaluation。

/SAPWD:指定sa的密码

3,安装补丁
补丁.exe /allinstances  /qs /IACCEPTSQLSERVERLICENSETERMS 

参考:您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?

4,ini文件如下

;SQL Server 2012  Configuration File
;安装到D盘,不安装report services,ssis等不用的功能

[OPTIONS]

; 指定安装程序的工作流,如 INSTALL、UNINSTALL 或 UPGRADE。这是必需的参数。 

ACTION="Install"

; 尚未定义命令行参数 ENU 的详细帮助。 

ENU="False"

; 用于控制用户界面行为的参数。有效值对于完整 UI 为 Normal,对于简化的 UI 为 AutoAdvance,为 EnableUIOnServerCore 则跳过 Server Core 安装程序 GUI 块。 

;UIMODE="Normal" 

; 安装程序将不会显示任何用户界面。 

QUIET="False"

; 安装程序将只显示进度,而不需要任何用户交互。 

QUIETSIMPLE="False"

; 指定 SQL Server 安装程序是否应发现和包括产品更新。有效值是 True 和 False 或者 1 和 0。默认情况下,SQL Server 安装程序将包括找到的更新。 

UpdateEnabled="False"

; 指定要安装、卸载或升级的功能。顶级功能列表包括 SQL、AS、RS、IS、MDS 和工具。SQL 功能将安装数据库引擎、复制、全文和 Data Quality Services (DQS)服务器。工具功能将安装管理工具、联机丛书组件、SQL Server Data Tools 和其他共享组件。 

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,DQ,DQC,CONN,BC,SDK,BOL,SSMS,ADV_SSMS,DREPLAY_CTLR,DREPLAY_CLT,SNAC_SDK,MDS

; 指定 SQL Server 安装程序将获取产品更新的位置。有效值为 "MU" (以便搜索产品更新)、有效文件夹路径以及 .\MyUpdates 或 UNC 共享目录之类的相对路径。默认情况下,SQL Server 安装程序将通过 Window Server Update Services 搜索 Microsoft Update 或 Windows Update 服务。 

UpdateSource="MU"

; 显示命令行参数用法 

HELP="False"

; 指定应将详细的安装程序日志传送到控制台。 

INDICATEPROGRESS="False"

; 指定安装程序应该安装到 WOW64 中。IA64 或 32 位系统不支持此命令行参数。 

X86="False"

; 指定共享组件的安装根目录。在已安装共享组件后,此目录保持不变。 

INSTALLSHAREDDIR="d:\Program Files\Microsoft SQL Server"

; 指定 WOW64 共享组件的安装根目录。在已安装 WOW64 共享组件后,此目录保持不变。 

INSTALLSHAREDWOWDIR="d:\Program Files (x86)\Microsoft SQL Server"

; 指定默认实例或命名实例。MSSQLSERVER 是非 Express 版本的默认实例,SQLExpress 则是 Express 版本的默认实例。在安装 SQL Server 数据库引擎(SQL)、Analysis Services (AS)或 Reporting Services (RS)时,此参数是必需的。 

INSTANCENAME="MSSQLSERVER"

; 为您已指定的 SQL Server 功能指定实例 ID。SQL Server 目录结构、注册表结构和服务名称将包含 SQL Server 实例的实例 ID。 

INSTANCEID="MSSQLSERVER"

; 指定可以收集 SQL Server 功能使用情况数据,并将数据发送到 Microsoft。指定 1 或 True 将启用此功能,指定 0 或 False 将禁用此功能。 

SQMREPORTING="False"

; 用于授予分布式重播控制器服务权限的 Windows 帐户。 

CTLRUSERS=".\Administrator"

; 分布式重播控制器服务使用的帐户。 

CTLRSVCACCOUNT="NT Service\SQL Server Distributed Replay Controller"

; 分布式重播控制器服务的启动类型。 

CTLRSTARTUPTYPE="Manual"

; 分布式重播客户端服务使用的帐户。 

CLTSVCACCOUNT="NT Service\SQL Server Distributed Replay Client"

; 分布式重播客户端服务的启动类型。 

CLTSTARTUPTYPE="Manual"

; 分布式重播客户端服务的结果目录。 

CLTRESULTDIR="d:\Program Files (x86)\Microsoft SQL Server\DReplayClient\ResultDir"

; 分布式重播客户端服务的工作目录。 

CLTWORKINGDIR="d:\Program Files (x86)\Microsoft SQL Server\DReplayClient\WorkingDir"

; 指定是否可将错误报告给 Microsoft 以便改进以后的 SQL Server 版本。指定 1 或 True 将启用此功能,指定 0 或 False 将禁用此功能。 

ERRORREPORTING="False"

; 指定安装目录。 

INSTANCEDIR="d:\Program Files\Microsoft SQL Server"

; 代理帐户名 

AGTSVCACCOUNT="NT Service\SQLSERVERAGENT"

; 安装后自动启动服务。  

AGTSVCSTARTUPTYPE="Automatic"

; CM 程序块 TCP 通信端口 

COMMFABRICPORT="0"

; 矩阵如何使用专用网络 

COMMFABRICNETWORKLEVEL="0"

; 如何保护程序块间的通信 

COMMFABRICENCRYPTION="0"

; CM 程序块使用的 TCP 端口 

MATRIXCMBRICKCOMMPORT="0"

; SQL Server 服务的启动类型。 

SQLSVCSTARTUPTYPE="Automatic"

; 启用 FILESTREAM 功能的级别(0、1、2 或 3)。 

FILESTREAMLEVEL="0"

; 设置为 "1" 可为 SQL Server Express 启用 RANU。 

ENABLERANU="False"

; 指定要用于数据库引擎的 Windows 排序规则或 SQL 排序规则。 

SQLCOLLATION="Chinese_PRC_CI_AS"

; SQL Server 服务的帐户: 域\用户或系统帐户。 

SQLSVCACCOUNT="NT Service\MSSQLSERVER"

; 要设置为 SQL Server 系统管理员的 Windows 帐户。 

SQLSYSADMINACCOUNTS=".\Administrator"

; 默认值为 Windows 身份验证。使用 "SQL" 表示采用混合模式身份验证。 

SECURITYMODE="SQL"

; 将当前用户设置为 SQL Server 2012 Express 的数据库引擎系统管理员。 

ADDCURRENTUSERASSQLADMIN="False"

; 指定 0 禁用 TCP/IP 协议,指定 1 则启用该协议。 

TCPENABLED="1"

; 指定 0 禁用 Named Pipes 协议,指定 1 则启用该协议。 

NPENABLED="0"

; Browser 服务的启动类型。 

BROWSERSVCSTARTUPTYPE="Disabled"

; 添加输入参数 FTSVCACCOUNT 的描述 

FTSVCACCOUNT="NT Service\MSSQLFDLauncher"
2014四月23

查询指定变量的表sqlcmd

sql server 评论关闭
0,优势:可在查询编辑器下引用变量,执行cmd命令
1,查询编辑器开启sqlcmd:在“查询”菜单中,单击“SQLCMD 模式”
2,编写脚本

:setvar table "person"

SELECT *
FROM [$(table)]

!!DIR
GO

使用查询编辑器编辑 SQLCMD 脚本

2014四月12

SQLServer2012 IntegratiionServices高级教程

sql server 评论关闭
比SQL强悍之处:
1,可以使用脚本处理任务,比如C#
2,数据源可以多源,如web service
3,FTP传送数据,生成文件并邮件、FTP
4,可以通过转换,将不标准的数据传到另一路径处理,标准数据按正常路径执行,通过unionall转换来合并数据
5,若是同一sqlserver中,用sql job完全可以使用,若是数据源来自不同服务器,有的是文本这些用SSIS效率会更高, 第8章有个典型例子
      windows services的地方都可用ssis来替换,windwos servies的脚本ssis中的脚本任务可完整实现 ,并且ssis放在agent job中执行,可以按多种执行计划来调度,还有错误报告机制,并不用再费心对每个windows services写错误机制,错误可写到表中,这样通过数据库连接就能看到错误信息
 6,通过数据转换与查找,利用提供的现有函数,简单完成复杂的数据抽取
7,可替换:windows services,账单上传,本质是涉及到多数据源的数据操作,就是SSIS的用武之地
8,可在asp.net调用包执行数据
9,当出错是,可进行配置,将错误信息自动记录到表中
 
 

第二章 

1,在sqlserver上通过向导,选择将包保存到文件,最后可生成.dtsx文件,打开sqlserver data tools2012,新建一个项目,可将前面生成的包copy到项目的包中,进行编辑
2,执行包:在解决方案管理器中右击该包,并选择执行包
3,控制流中执行进程任务可用来执行exe这些项目
4,数据流中有两个箭头,绿字的表示本次执行成功后执行哪一个,而红色的表示执行失败后执行哪一个
5,任务流的箭头上双击,可以指定按哪种方式转到下一个,若表达式,成功,失败等,其中完成约束表示无论前一个成功与否,都执行下一个。
6,选择多个,右键可以分组
7,批注,在空白处点右键,批注
 
第三章 SSIS任务
1,属性
  • DelayValidation:设置为True,则不会对任务中的属性集进行验证
  • Disable:禁用任务
  • FailPackageOnFailure:设置为True时,只要单个任务失败,整个包就会失败
  • FailParentOnFailure:设置为True时,单个任务失败,该任务的上层如包或容器也会失败
2,任务类型
  • 控制流中执行进程任务可用来执行exe这些项目
  • 脚本任务可以通过C#来编写代码,设置ReadOnlyVariables和WriteVariables属性,可将SSIS变量以逗号分隔的列表形式传送到脚本
  • 文件系统任务,复制移动目录等
  • FTP任务,获取或发送文件
  • Web服务任务:接收WebService数据
  • XML任务:可以用来验证XML任务是否正确
  • 大容量插入任务:将来自文本的数据插入到关系数据库中,类似于sqlserver中的导入文本文件
  • SQL任务:执行sql,sql脚本,存储过程
  • 发送消息任务:与ssb通信等
  • 发送邮件任务
  • WMI数据读取器任务:读取日志信息
  • WMI事件观察器任务:在OS某个指定事件触发后执行相关任务,如某目录下新增了文件后再执行
  • SMO任务
    • 传输job任务
    • 传输登陆名任务
    • 传输错误信息任务
    • 传输SQLServer对象任务

第四章 容器
1,容器:可以视为一个小型的包,将变量范围缩小到一个容器内,注意容器内的任务不能与容器外的任务相连接
2,For循环容器:遍历执行,直到满足某个条件跳出
3,Foreach循环容器,遍历一个对象集合,如文件,对象,通过定义变量来与索引匹配,在属性变量映射中设置【debug不成功】
4,Foreach dao容器,将Foreach的属性设置为ADO即可
 
第五章 数据流
1,数据流主要在内存中工作,提供了更快的速度,虽然也需要更好的内存,以空间换速度,数据从源中流出,默认大小为10M或1万行(以先达到为准)开始进行转换
2,数据查看器:在运行时查看数据,方法,右击一个路径,选择“启用数据查看器”,默认显示1万行
3,OLE DB源:可以在错误输出时,选择错误、截断时执行忽略还是继续执行
4,平面文件源:
  • 文本限定符,若指定按逗号分隔,以引号文本限定符包含中的逗号将能被忽略
  • 默认情况下,SSIS将扫描文件中的前100条记录,从而猜测合适的数据类型
  • FastParse选项,对数据进行类型检查,一般会增加20%~30%的时间来验证,若文件格式比较整齐的话,可以忽略,在右键-高级编辑器-输入属性和输出属性-平面文件源输出-输出列 ,右边FastParse
5,多平面文件连接管理器:在连接管理器中右键添加 

6,目标:目标与源的区别在于在目标中有一个映射属性页,来指定数据来源
7,OLE DB目标:
  • 每批行数,指定了在每次发送到目标的批处理有多少行
  • 最大提交大小,指写了在在发出提交语句之前批处理的大小,可设置为一个小的数字,以便快速提交
  • 表锁:在目标表中设置一个锁,以便提高加载速度,但若有多线程,此选项将会耗时
8,原始文件目标:通常作为部分转换数据的中间点,以本机格式编写,读取速度非常快。

9,SQLServer目标:它需要用内存中的一个接口,需要将包运行在sqlserver所在的服务器中才行
10,转换
  • 聚合转换,对源数据进行聚合
  • 有条件拆分转换:相当于加了一个if,else,比如当某字段首字母为“A”时,执行一个路径,其它执行另一路径
  • 数据转换:对字段进行convert,转化为指定类型
  • 派生列转换:对数据源增加新列,此新列可以为一计算值
  • 查找转换:在数据流和第二个数据集之间执行join
  • 行计数转换:记录转换的行数,需要定义一个变量存储行计数的结果
  • 排序转换:对指定数据进行排序,是一种异步转换,比较慢,若想排序的话,在TSQL语句中,高级编辑器-输入属性和输出属性中指定IsSorted为True
  • UNION转换:对多个数据源执行UNION,将源数据都指向此转换即可
  • 字符映射表转换:对列进行字符操作,如大小写,字节反转,简繁体转换
  • 复制列转换:对列进行复制,是派生列转换的简化版
  • 导出列转换:将数据库中BLOB类型的字段转化成物理文件,它要求输入有两个,一个是BLOB类型字段,一个是生成的对应文件
    • 允许追加,指定了如果文件存在,是否应将输出附加到现有文件
    • 强制截断,当文件存在时就重写
    • 编写字节顺序标记,是否将字节顺序记录文件
  • 导入列转换:将文件导入到数据库
  • 模糊查找转换:比如对于文本,将它的列与数据的列进行相似匹配,正确的话就替换文本的列,然后存入目标,没有查找转换效率高
  • 模糊分组转换:浏览一组相似的文本进行转换
  • 合并联接转换,对数据进行JOIN,生成结果表
  • 多播转换:将源数据下放到多个目标中,多播转换会向下游的每一个目标发送所有行,而有条件拆分是将满足条件的行输出到下一目标
  • 百分比抽样转换:按百分比抽取数据
  • 行抽样转换:指定行数抽取数据
  • 透视转换:进行行转列
    • 透视键:原来的一列数据作来新数据中的列名
    • 设置键:左边的行值
    • 透视值:据设置键与透视键进行聚合
  • 逆透视:列转行
  • 字词提取转换:提取一字符串字段,对于进行分析,生成各字词的频次表
  • 字词查换转换:类似于查找转换,指定一数据源进行匹配
第六章 使用变量、参数和表达式
1,变量区分大小写,按F4查看属性,其中将EvaluteAsExpression属性设置为True时,通过Expression属性提供的表达式来定义变量,相对于表达式,不过更好的一点是更通用的表达式。
2,2012中提供了参数,可以设置是否敏感,这样ssis可对包进行加密。
3,表达式与T-SQL有部分不一样:IsNull 若为null,则为true,而不是tsql中的二元。datepart要加引号,如:DATEPART( "mm",getdate())
4,字符串要有双引号,而不是单引号

5,在SSIS中变量不能被设置为NULL,都有默认值 ,如datetime的默认值为12/30/1899
 
第10章 加载数据仓库
1,事件查看器:对数据质量进行分析,将数据事件探查器任务放到控制流,属性快速配置文件中指定数据源,常规中指定目标,执行,就能生成xml分析文件,用sqlserver中Integration Services下的数据配置文件查看器就能查看此XML文件
     注此工具在2012才开始提供,在查看器中,树的右上角可按列显示数据
     使用说明:
  • 候选键配置文件,显示 哪些列是唯一的
  • 列Null比率,验证数据完整性
  • 列长度分布配置文件,查看最大最小长度
  • 函数依赖关系配置文件:看列与列是否1对1的关系
      
 
第22章 SSIS部署
1,在sqlserver上有个Integration Services目录,要建立一个SSISDB,在ssis设计时,指定此部署包即可,部署上后,通过job指定要运行的包,设定好时间就可运行
  • SSISDB是一个数据库,在数据库里面能找到此数据库,可看到他的表
  • 在Integration Services目录,项目里右键属性可看到版本,历史版本都有记录,可以还原,在SSISDB属性上有个选项可设置保留的最大版本数
  • 部署有两种,项目部署模型,2012新的默认的,包部署模型,历史兼容
  • 部署到sqlserver上的包可以通过tsql来执行,在包上右键执行,生成脚本,就能得到
  • 环境是参数的集合,单独抽取出来方便调用,引用环境就是在包上右键-配置-引用即可
  • 报表已经内部生成好,在包上右键-报表,可看到包的运行情况,详细的运行到每一步的情况及报表
  • 若报表不足够,可在这里下载或者自己开发http://ssisreportingpack.codeplex.com/,下载后用ssrs打开修改数据源,在自定义报表中指定即可