sql server 有什么办法可以实现语句指定分段执行。

freesky20 2019-02-12 04:38:28
请问有什么办法可以实SQL 多语段指定分段执行。

declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。

SELECT * FROM
(select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100
UNION ALL
select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200
UNION ALL
select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300) P
WHERE P.[Company Code] in (@CompanyCode)


上面这段放在报表中没有问题,但是这样带来一个问题就是,如果我只是要查单独的某个公司,语句会将所有涉及的服务器的表都查一遍,速度会非常慢,因为服务器在不同的国家。有什么办法可以让语句只执行我需要查询的公司的哪段代码?


我试过在 case, 但是in操作符只能用在where中。
不知大家有什么好办法。
...全文
617 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
freesky20 2019-02-13
  • 打赏
  • 举报
回复
引用 7 楼 唐诗三百首 的回复:

declare @CompanyCode nvarchar(100)
set @CompanyCode=N'A1,A3'  --> 传入参数需是这样的格式.


declare @tsql nvarchar(max)

select @tsql=case when charindex(N'A1',@CompanyCode)>0 then 
                     N'select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 union all '
                   else N'' end
             +case when charindex(N'A2',@CompanyCode)>0 then 
                     N'select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 union all '
                   else N'' end
             +case when charindex(N'A3',@CompanyCode)>0 then 
                     N'select ''A3'' as [Company Code],* from server3.dbo.appDB03.AP01A300 union all '
                   else N'' end
             
select @tsql=left(@tsql,len(@tsql)-9)

exec(@tsql)
谢谢指正。
freesky20 2019-02-13
  • 打赏
  • 举报
回复
引用 5 楼 axiuaxiu369 的回复:
[quote=引用 楼主 freesky20 的回复:] 请问有什么办法可以实SQL 多语段指定分段执行。

declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。

SELECT * FROM 
(select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100
UNION ALL
select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200
UNION ALL
select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300) P
WHERE P.[Company Code] in (@CompanyCode)
上面这段放在报表中没有问题,但是这样带来一个问题就是,如果我只是要查单独的某个公司,语句会将所有涉及的服务器的表都查一遍,速度会非常慢,因为服务器在不同的国家。有什么办法可以让语句只执行我需要查询的公司的哪段代码? 我试过在 case, 但是in操作符只能用在where中。 不知大家有什么好办法。
有两个疑问和两个建议。 疑问1:
declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。
没看明白这个演示,因为这个赋值的方法,在SQL server中确实演示不通,如果再说具体一点,或许更好一些,就现在这个描述,改造语句如下(至于赋值,您自己想办法),此为建议1:
declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。

SELECT * FROM 
(select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = 'A1'
UNION ALL
select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = 'A2'
UNION ALL
select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300 where @CompanyCode = 'A3') P
WHERE P.[Company Code] in (@CompanyCode)
疑问2:server3.dbo.appDB03.AP01A300 这个貌似不是正确的写法,或许是 server3.appDB03.dbo.AP01A300 ? 建议2:您的代码效率低下不仅仅是您描述的这个原因,个人觉得还有如下原因:第一,使用了select * from …… 建议用几个字段,就写明白具体的几个字段;第二,查询链接服务器时where后面可以写的更具体,比如时间段等条件;第三,如果有group by 运算,建议也放在远程上执行,执行完了再查询,会大大减少数据传输量,提高查询效率;第四,如果使用拼接语句(EXEC sql语名),建议还是跟临时表和表变量配合使用吧,用起来更加灵活和高效。[/quote] 谢谢指正,我是临时手打的代码,因为不想把公司的细节暴露太多,只是提一个样的思路。你的第二个方法不错,我已经朝着这个方向改了。
freesky20 2019-02-13
  • 打赏
  • 举报
回复
引用 6 楼 victor_yang 的回复:
楼主的意思是,如果查询公司有A1的,就从Server1查数据,有A2的就从Server2查数据,最后合并返回,我建议你将Sql语句变成字符串操作吧,我给你个方法,语句不一定对。 declare @Sql nvarchar(4000) set @Sql='' if 'A1' in @CompanyCode begin if @Sql='' then Set @Sql=@Sql+' select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = ''A1'' ' else Set @Sql=@Sql+' Union all select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = ''A1'' ' end if 'A2' in @CompanyCode begin if @Sql='' then Set @Sql=@Sql+' select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = ''A2'' ' else Set @Sql=@Sql+' Union all select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = ''A2'' ' end ...... if @Sql<>'' then Exec(@Sql)
是的,是这种思路,我现在正冲这个方向做。
victor_yang 2019-02-13
  • 打赏
  • 举报
回复
用if判断,再拼接语句,这方法可行,我在做用友二开就有用到这方法。
freesky20 2019-02-13
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
写个if 判断,如果根据输入参数,执行相应的代码
好像 if @cc in (@CompanyCode ) 可以,沿着这个思路就可以拼接语句了。
唐诗三百首 2019-02-13
  • 打赏
  • 举报
回复 1

declare @CompanyCode nvarchar(100)
set @CompanyCode=N'A1,A3' --> 传入参数需是这样的格式.


declare @tsql nvarchar(max)

select @tsql=case when charindex(N'A1',@CompanyCode)>0 then
N'select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 union all '
else N'' end
+case when charindex(N'A2',@CompanyCode)>0 then
N'select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 union all '
else N'' end
+case when charindex(N'A3',@CompanyCode)>0 then
N'select ''A3'' as [Company Code],* from server3.dbo.appDB03.AP01A300 union all '
else N'' end

select @tsql=left(@tsql,len(@tsql)-9)

exec(@tsql)
victor_yang 2019-02-13
  • 打赏
  • 举报
回复 1
楼主的意思是,如果查询公司有A1的,就从Server1查数据,有A2的就从Server2查数据,最后合并返回,我建议你将Sql语句变成字符串操作吧,我给你个方法,语句不一定对。

declare @Sql nvarchar(4000)
set @Sql=''

if 'A1' in @CompanyCode
begin
if @Sql='' then
Set @Sql=@Sql+' select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = ''A1'' '
else
Set @Sql=@Sql+' Union all select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = ''A1'' '
end

if 'A2' in @CompanyCode
begin
if @Sql='' then
Set @Sql=@Sql+' select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = ''A2'' '
else
Set @Sql=@Sql+' Union all select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = ''A2'' '
end
......

if @Sql<>'' then
Exec(@Sql)
阿·修 2019-02-13
  • 打赏
  • 举报
回复
引用 楼主 freesky20 的回复:
请问有什么办法可以实SQL 多语段指定分段执行。

declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。

SELECT * FROM 
(select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100
UNION ALL
select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200
UNION ALL
select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300) P
WHERE P.[Company Code] in (@CompanyCode)
上面这段放在报表中没有问题,但是这样带来一个问题就是,如果我只是要查单独的某个公司,语句会将所有涉及的服务器的表都查一遍,速度会非常慢,因为服务器在不同的国家。有什么办法可以让语句只执行我需要查询的公司的哪段代码? 我试过在 case, 但是in操作符只能用在where中。 不知大家有什么好办法。
有两个疑问和两个建议。 疑问1:
declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。
没看明白这个演示,因为这个赋值的方法,在SQL server中确实演示不通,如果再说具体一点,或许更好一些,就现在这个描述,改造语句如下(至于赋值,您自己想办法),此为建议1:
declare @CompanyCode as nvarchar(4)
set @CompanyCode=('A1','A2','A3') --这里只是演示,实际不能这么赋值。

SELECT * FROM 
(select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 where @CompanyCode = 'A1'
UNION ALL
select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 where @CompanyCode = 'A2'
UNION ALL
select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300 where @CompanyCode = 'A3') P
WHERE P.[Company Code] in (@CompanyCode)
疑问2:server3.dbo.appDB03.AP01A300 这个貌似不是正确的写法,或许是 server3.appDB03.dbo.AP01A300 ? 建议2:您的代码效率低下不仅仅是您描述的这个原因,个人觉得还有如下原因:第一,使用了select * from …… 建议用几个字段,就写明白具体的几个字段;第二,查询链接服务器时where后面可以写的更具体,比如时间段等条件;第三,如果有group by 运算,建议也放在远程上执行,执行完了再查询,会大大减少数据传输量,提高查询效率;第四,如果使用拼接语句(EXEC sql语名),建议还是跟临时表和表变量配合使用吧,用起来更加灵活和高效。
freesky20 2019-02-12
  • 打赏
  • 举报
回复
不知道有没有人可以有办法写出EXEC sql语名。可以分另把select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 赋值给sql1,sql2, sql3 @sql1='select ''A1'' as [Company Code],* from server1.dbo.appDB01.AP01A100 ' @sql2='select ''A2'' as [Company Code],* from server2.dbo.appDB02.AP01A200 ' @sql3='select ''A3'' as [Company Code],* from server3.dbo.appDB03.AP01A300 ' 最后拼接语句段。 有没有人有好的想法。
freesky20 2019-02-12
  • 打赏
  • 举报
回复
实际是我的语句是可以满足我的要求的, 我现在的目的是想对我的语句进行优化,我的意思是,当用户选择查询A1,或A2,或A1加A2, 不会同时把 select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300 都执行一遍。而是查询A1的时候只执行 select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 而是查询A2的时候只执行 select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 查询 A1 A2 或A2,A3的时候只执行 select 'A1' as [Company Code],* from server1.dbo.appDB01.AP01A100 union all select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 或者 select 'A2' as [Company Code],* from server2.dbo.appDB02.AP01A200 union all select 'A3' as [Company Code],* from server3.dbo.appDB03.AP01A300
freesky20 2019-02-12
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
写个if 判断,如果根据输入参数,执行相应的代码
MSSQL 在语句中不支持 if把? 我用:

select if(true,1+1,1+2);
只有 mysql才执行,mssql在存储过程中可以使用,但那就要定义存储过程在远程数据库中了,可以我没有DBA权限,只有一个查询功能。
shoppo0505 2019-02-12
  • 打赏
  • 举报
回复
写个if 判断,如果根据输入参数,执行相应的代码
中文版SQL Server 2000开发与管理应用实例-目录: 第 1 章 安装和配置SQL Server 1 1.1 SQL Server的版本和版本选择 1 1.2 安装SQL Server的常见问题 3 1.3 如何理解实例 5 1.4 如何实现无值守安装 5 1.5 Desktop Engine 9 1.5.1 MSDE 2000概述 9 1.5.2 获取MSDE 2000 9 1.5.3 安装MSDE 2000 10 1.5.4 管理MSDE 2000 11 1.5.5 支持的并发用户数和数据库容量 12 1.6 SQL Server Service Pack 12 1.6.1 确定已安装SQL Server的版本 12 1.6.2 SQL Server Service Pack 4介绍 13 1.6.3 SQL Server Service Pack 4的内容 13 1.6.4 安装SQL Server Service Pack 4的常见问题 14 1.7 SQL Server服务 15 1.8 服务账户 15 1.9 影响SQL Server运行的设置 18 1.9.1 内存配置 18 1.9.2 数据存储 20 第 2 章 日期处理 23 2.1 日期类型概述 23 2.2 日期处理函数 25 2.2.1 日期增减函数 25 2.2.2 日期信息获取函数 26 2.2.3 日期差值计算函数 27 2.2.4 其他日期处理相关函数 27 2.3 日期选项设置 29 2.3.1 default language选项 30 2.3.2 SET DATEFIRST 31 2.3.3 SET DATEFORMAT 31 2.3.4 SET LANGUAGE 33 2.4 日期格式化与日期推算处理 34 2.4.1 日期格式化处理 34 2.4.2 日期推算处理 35 2.4.3 日期加减处理 38 2.5 日期处理实例 40 2.5.1 生日处理 40 2.5.2 生成日期列表 42 2.5.3 工作日处理 46 2.5.4 工作时间计算 49 2.6 日期处理疑难解答 51 2.6.1 日期处理中常犯的错误 51 2.6.2 常见的低效率日期处理方法 52 2.6.3 日期与数字 53 第 3 章 字符处理 55 3.1 字符类型概述 55 3.2 字符串分拆 56 3.2.1 循环截取法 57 3.2.2 动态Transact-SQL语句法 57 3.2.3 辅助表法 59 3.2.4 分拆数据到列 61 3.2.5 分拆数字数据 62 3.2.6 分拆短信数据 63 3.3 字符串合并 64 3.3.1 游标合并法 65 3.3.2 语句合并法 66 3.3.3 临时表合并法 68 3.3.4 固定行合并法 69 3.4 其他字符串处理要求 70 3.4.1 分段截取 70 3.4.2 分段更新 72 3.4.3 IP地址处理 72 3.5 字符串分拆与合并处理应用实例 74 3.5.1 字符串比较 74 3.5.2 字符串交集/并集 75 3.5.3 分拆字符串并统计 78 3.5.4 借用字符串实现无规律排序 82 3.5.5 列车车次查询 82 3.6 字符串在动态Transact-SQL语句中的应用 85 3.6.1 动态Transact-SQL语句概述 85 3.6.2 字符串在编号查询中的使用 87 3.6.3 动态参数存储过程 90 3.6.4 动态Transact-SQL语句中常见问题 92 3.7 text与ntext字段处理 96 3.7.1 text与ntext数据的存储 96 3.7.2 管理text与ntext数据 97 3.7.3 text与ntext字段的复制和合并 99 3.7.4 text与image字段转换 101 3.7.5 ntext字段的REPLACE处理 103 第 4 章 排序规则 107 4.1 字符存储编码与排序规则 107 4.1.1 字符数据的存储编码 107 4.1.2 UNICODE 108 4.1.3 排序规则 109 4.1.4 排序规则比较和排列规则 111 4.1.5 使用排序规则 112 4.1.6 如何选择字符字段类型 116 4.2 排序规则应用 117 4.2.1 拼音处理 117 4.2.2 全角与半角字符处理 120 第 5 章 编号处理 123 5.1 自动编号 123 5.1.1 IDENTITY 123 5.1.2 ROWGUIDCOL 129 5.2 手工编号 131 5.2.1 查表法 131 5.2.2 独立编号表法 135 5.2.3 随机编号 139 5.3 缺号与补号 143 5.3.1 检查缺号 143 5.3.2 补号处理 143 5.3.3 编号重排 146 5.4 编号查询 150 5.4.1 已用编号分布查询 150 5.4.2 缺号分布查询 151 5.4.3 生成已用编号和缺号分布字符串 152 5.4.4 缺勤天数统计 155 第 6 章 数据统计与汇总 159 6.1 基本查询 159 6.1.1 空(NULL)值对查询的影响 159 6.1.2 联接 161 6.1.3 UNION与UNION ALL 165 6.1.4 数据填充查询 167 6.1.5 上限与下限区间统计 169 6.1.6 随机记录查询 170 6.2 分级汇总 173 6.2.1 实现分级汇总处理 173 6.2.2 分级汇总结果的过滤 176 6.2.3 分级汇总结果显示格式处理 177 6.2.4 分级汇总结果的排序处理 179 6.3 交叉数据报表 181 6.3.1 实现原理 181 6.3.2 多列转置 184 6.3.3 动态列 185 6.3.4 动态列中的字符溢出处理 188 6.3.5 特殊的交叉报表 191 6.4 典型数据统计案例 193 6.4.1 库存明细账查询 193 6.4.2 同期及上期数据对比 197 6.4.3 动态分组统计 199 6.4.4 销售排行榜 200 第 7 章 分页处理 205 7.1 应用程序中的分页处理 205 7.2 数据库中的分页处理 207 7.2.1 使用TOP N实现分页 207 7.2.2 使用字符串 211 7.2.3 使用临时表 213 7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 方法概述 223 8.1.2 逐级汇总 225 8.1.3 编码重排 226 8.1.4 调整编码规则 229 8.1.5 调整编码隶属关系 233 8.2 双编号处理法 238 8.2.1 方法概述 239 8.2.2 树形数据排序 240 8.2.3 查找子节点 244 8.2.4 查找父节点 245 8.2.5 编码校验 246 8.2.6 节点复制 249 8.2.7 节点删除 251 8.2.8 逐级汇总 253 8.3 树形数据的扩展形式 256 8.3.1 产品配件清单 256 8.3.2 公交车乘车线路查询 258 第 9 章 数据导入与导出 261 9.1 访问外部数据 261 9.1.1 链接服务器 261 9.1.2 OPENROWSET与OPENDATASOURCE 268 9.1.3 外部数据访问方法总结 270 9.2 文本文件的导入与导出 274 9.2.1 查询文本文件内容 274 9.2.2 BCP与BULK  277 9.3 导入与导出中的常见问题 285 9.3.1 访问外部数据的注意事项 285 9.3.2 使用BCP或者BULK 时的注意事项 286 9.3.3 外部数据文件位置及文件访问权限问题 287 9.4 在客户端实现SQL Server数据导入与导出处理 288 9.4.1 在Access数据库中实现SQL Server之间的数据交换 288 9.4.2 实现客户端其他OLE DB数据源与SQL Server之间的数据交换 289 9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 9.5.2 程序中的文件存取处理方法 292 第 10 章 作业 295 10.1 作业概述 295 10.1.1 定义作业 295 10.1.2 使用系统存储过程定义作业的常用模板 300 10.2 作业的应用 303 10.2.1 定时启用(或者停用)数据库 303 10.2.2 执行耗时的存储过程 304 10.2.3 秒级作业 305 10.3 使用作业的疑难解答 309 第 11 章 数据备份与还原 315 11.1 数据库备份与还原方法介绍 315 11.1.1 完全备份与还原 315 11.1.2 差异备份与还原 317 11.1.3 日志备份与还原 319 11.1.4 数据文件或文件组备份与还原 320 11.1.5 备份设备 321 11.1.6 数据库恢复模型对数据库备份和还原的影响 322 11.2 制订数据库备份方案 326 11.2.1 备份方案制订原则 326 11.2.2 建立数据备份方案 327 11.3 数据库备份与还原的实践应用 332 11.3.1 系统数据库的备份与还原 332 11.3.2 数据库迁移 336 11.3.3 部分数据库还原 339 11.3.4 抢救损坏数据库中的数据 341 11.3.5 将数据还原到指定时间点 343 11.3.6 将数据还原到指定标记点 345 11.3.7 同步备用服务器 346 11.4 数据备份与还原疑难解答 349 11.4.1 数据备份与还原中的常见问题 349 11.4.2 使用媒体集备份时的常见问题 354 11.4.3 数据库还原中的孤立用户问题 356 11.4.4 查询备份文件中的信息 360 第 12 章 用户定义数据类型 361 12.1 用户定义数据类型概述 361 12.1.1 创建和删除用户定义数据类型 361 12.1.2 为用户定义的数据类型绑定规则 365 12.1.3 为用户定义的数据类型绑定默认值 370 12.2 修改用户定义数据类型 373 12.2.1 修改被表引用的用户定义数据类型 373 12.2.2 修改被存储过程引用的用户定义数据类型 379 第 13 章 数据库安全 383 13.1 SQL Server的存取构架 383 13.1.1 表格格式数据流(TDS) 383 13.1.2 Net-Library与网络协议 384 13.1.3 Net-Library加密 387 13.2 用户管理 388 13.2.1 身份验证模式 388 13.2.2 登录、用户、角色和组 390 13.2.3 管理用户 395 13.3 数据文件安全 403 13.4 SQL Server安全配置 405 13.4.1 安全配置建议 405 13.4.2 使用安全套接字层(SSL)加密 408 13.5 应用程序上的安全 417 13.5.1 防止SQL注入式攻击 417 13.5.2 限制应用程序访问 418 13.5.3 不安全的扩展存储过程 419 第 14 章 系统表应用实例 423 14.1 系统对象概述 423 14.1.1 每个数据库中都存在的系统表 424 14.1.2 仅在系统数据库中存在的系统表 424 14.1.3 系统表应用中三个重要的系统存储过程 426 14.2 系统表在对象信息检索中的应用 429 14.2.1 搜索指定的对象所处的数据库 429 14.2.2 获取存储过程参数定义 432 14.2.3 搜索指定字符在哪个表的哪个字段中 435 14.2.4 非UNICODE字段改为UNICODE字段的可行性查询 438 14.2.5 字段相关对象查询 439 14.2.6 生成数据库字典 443 14.3 系统对象在处理中的应用 444 14.3.1 批量处理数据库中的对象 444 14.3.2 将所有的char、varchar改为nchar、nvarchar 445 14.3.3 标识列与普通列的相互转换 447 14.3.4 把列添加指定位置 450 14.3.5 在两个SQL Server数据库之间复制对象 451 第 15 章 SQL Server应用疑难解答 455 15.1 访问SQL Server实例的常见问题 455 15.1.1 连接失败 455 15.1.2 用户登录失败 458 15.1.3 测试连接到SQL Server实例的方法总结 458 15.1.4 超时 459 15.1.5 单用户的问题 460 15.1.6 默认数据库问题 461 15.2 索引中的疑难解答 462 15.2.1 索引对查询条件的影响 462 15.2.2 索引对查询结果顺序的影响 465 15.2.3 索引对数据操作的影响 469 15.3 数据库日志疑难解答 470 15.3.1 影响日志文件增长的因素 471 15.3.2 从事务日志中删除日志记录 472 15.3.3 日志文件处理中的误区 472 15.3.4 合理解决日志文件增长 473 15.4 错误处理疑难解答 474 15.4.1 错误处理概述 474 15.4.2 错误处理严重程度 475 15.4.3 使用@@ERROR的疑难解答 476 15.4.4 XACT_ABORT与RAISERROR的疑难解答 477 15.5 游标处理疑难解答 479 15.5.1 全局游标与本地游标 479 15.5.2 检查指定的游标是否存在 480 15.5.3 事务提交或者回滚对游标的影响 482 15.5.4 可更新的游标 483 15.6 SQL Server处理中的其他疑难解答 484 15.6.1 并发工作负荷调控器 484 15.6.2 存储过程中的疑难解答 486 15.6.3 标识值疑难解答 488 15.6.4 全文检索疑难解答 491 15.6.5 发布与订阅中的常见问题 494 15.6.6 其他疑难解答 496 中文版SQL Server 2000开发与管理应用实例-简介: 《中文版SQL Server 2000开发与管理应用实例》 本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户定义数据类型、数据库安全、系统表应用实例、SQL Server应用疑难解答等内容。本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关知识。而且针对各类问题,提供了详细的操作步骤和解决思路,具有很强的实用性和可操作性。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧