sql存储过程出错了,主要是为了实现数据导入(导入要过滤的,譬如导入产品的表要是没有店铺名称,需要将数据以Excel的方式再导出,导入还要对关联的表操作)

快乐起航2020 2014-10-30 04:40:11
sql存储过程出错了,主要是为了实现数据导入(导入要过滤的,譬如导入产品的表要是没有店铺名称,需要将数据以Excel的方式再导出,导入还要对关联的表操作)
(现在假设我们已经将符合条件的数据到如到临时表@tbName了,然后现在要对相关表也进行插入操作,表的一些字段可以按照实际生活联想出来,没有每一个都解释得那么详细,不好意思!!!)

alter proc InsertPro
--是插入数据库后的临时表
@tbName nvarchar(50)
as
begin
declare @sql varchar(max)
set @sql=''

set @sql='delete from '+@tbName+' where [店铺名称] is null and [标题] is null '

set @sql=@sql+' alter table '+ @tbName +' add 用户ID int '

set @sql=@sql+'alter table '+ @tbName +' add 产品类别ID int '

set @sql=@sql+'alter table '+ @tbName +' add 品牌ID int '

set @sql=@sql+'alter table '+ @tbName +' add 品牌英文 nvarchar(255) '

set @sql=@sql+'alter table '+ @tbName +' add 店铺产品类目ID nvarchar(255) '

set @sql=@sql+'update '+ @tbName+' set [店铺ID]=(select top 1 [ID] from T_Shop where [ShopName]=[店铺名称])'

set @sql=@sql+'update '+ @tbName+' set [用户ID]=(select top 1 [UserID] from T_Shop where ID=[店铺ID])'

set @sql=@sql+'delete from '+ @tbName+' where [店铺ID] is null or [用户ID] is null go '

set @sql=@sql+' INSERT INTO [T_ProBrand]
([Name]
,[EName]
,[SourcePhoto]
,[ThumbPhoto]
,[BigPhoto]
,[CategoryName]
,[FirstCatID]
,[SecondCatID]
,[ThirdCatID]
,[Url]
,[Keywords]
,[Descriptions]
,[OrderNum]
,[IsShow]
,[CheckState]
,[IsRecommend]
,[PID]
,[CreateTime])
select [品牌],'''','''','''','''','''',0,0,0,'''','''','''',49999,0,1,0,0,getdate() from
(
select distinct [品牌] from '+ @tbName+' where ([品牌] not in (select [Name] from T_ProBrand) or [品牌] not in (select [EName] from T_ProBrand))
) a'

set @sql=@sql+'update '+ @tbName+' set [品牌ID]=(select top 1 [ID] from T_ProBrand where ([Name]=[品牌] or [EName]=[品牌]))'

set @sql=@sql+'update '+ @tbName+' set [品牌英文]=(select top 1 [EName] from T_ProBrand where [ID]=[品牌ID])'

set @sql=@sql+'update '+ @tbName+' set [产品类别ID]=(select top 1 [ID] from T_ProCategory where ([Name]=[产品类别]))'

set @sql=@sql+'update '+ @tbName+' set [主图]=''http://img1.ymgkimg.com/UploadFiles/Product/img1025/''+[主图]'

set @sql=@sql+'update '+ @tbName+' set [主图]=[主图]+''.jpg'' where [主图] not like ''%.jpg'''

set @sql=@sql+'delete from '+ @tbName+' where [主图] is null go '

set @sql=@sql+'update '+ @tbName+' set [城市]=(select top 1 ID from T_Region where [Name] like ''%''+[城市]+''%'' and [Grade]=2)'

set @sql=@sql+'update '+ @tbName+' set [城市]=0 where [城市] is null go '

set @sql=@sql+'update '+ @tbName+' set [省份]=(select ParentID from T_Region where ID=[城市])'

set @sql=@sql+'update '+ @tbName+' set [省份]=0 where [省份] is null go '

set @sql=@sql+'update '+ @tbName+' set [店铺产品类目ID]=cast((select top 1 ID from [T_ShopProCategory] where [UserID]=[用户ID] and [Name]=[店铺产品类目]) as varchar(200))+'','''

set @sql=@sql+' Insert into T_Product ([UserID]
,[ShopID]
,[Title]
,[NOID]
,[NO]
,[CategoryID]
,[CategoryName]
,[FirstCatID]
,[FirstCatName]
,[SecondCatID]
,[SecondCatName]
,[ThirdCatID]
,[ThirdCatName]
,[TypeID]
,[TypeName]
,[BrandID]
,[BrandName]
,[BrandEName]
,[SpecificationsID]
,[SpecificationsName]
,[PropertyID]
,[PropertyName]
,[ProState]
,[StateTime]
,[StateRemark]
,[CommentStatus]
,[CommentTime]
,[CreateTime]
,[SignupTime]
,[EndTime]
,[EndDays]
,[Price]
,[DiscountPrice]
,[SourcePhoto]
,[ThumbPhoto]
,[BigPhoto]
,[Colors]
,[Counts]
,[Intro]
,[PayType]
,[Number]
,[Address]
,[SaleIntro]
,[StoreType]
,[GuaranteeTime]
,[GuaranteeUnit]
,[HasGuarantee]
,[HasBill]
,[ReturnAgreed]
,[IsNew]
,[NewPersent]
,[ReceiveType]
,[ReceiveDate]
,[Areas]
,[Pic1]
,[Pic2]
,[Pic3]
,[Pic4]
,[Pic5]
,[ShopCats]
,[PlateID]
,[PackType]
,[Province]
,[City]
,[FreightBy]
,[FirstFreight]
,[FirstEMS]
,[SecondFreight]
,[SecondEMS]
,[StockCountType]
,[RecShowcase]
,[ProStartType]
,[ProStartTime]
,[IsSale]
,[IsRecommend]
,[IsHot]
,[IsBuy]
,[IsCanSales]
,[Keywords]
,[Descriptions]
,[OrderNum]
,[SaleCount]
,[RefreshTime]
,[IsUpdate]
,[Freight]
,[IsDel]
,[DelTime]
,[IsBreak]
,[ErrorContent]
,[CheckState]
,[Operater]
,[OperateTime]
,[IsAdminRecommend]
) select [用户ID],[店铺ID],[标题],0
,[型号],0,'''',[产品类别ID]
,[产品类别],0,'''',0,'''',0,'''',[品牌ID]
,[品牌]
,[品牌英文],0,'''',0,'''',0,getdate(),'''',1,getdate(),getdate(),getdate(), DATEADD(day,30,getdate()),30
,[价格],0,'''','''','''',''''
,100
,[描述],1,'''','''',''''
,2
,1
,1
,2
,1,1
,1
,0
,1
,7
,1
,[主图],'''','''','''','''',[店铺产品类目ID],1
,1
,[省份]
,[城市]
,2
,0
,0
,0
,0
,1,0,1,getdate(),0,0,0,0,0,'''','''',0,0,getdate(),0,0,0,getdate(),1,'''',0,''导入员'',dateadd(ss, cast([用户ID] as int),getdate()),0 from '+@tbName

set @sql=@sql+' INSERT INTO [T_ProductPics]
([ProID]
,[UserID]
,[AlbumID]
,[CategoryID]
,[SourePhoto]
,[ThumbPhoto]
,[BigPhoto]
,[CreateTime]
,[ThumbPic1]
,[ThumbPic1_2]
,[ThumbPic1_3]
,[ThumbPic1_4]
,[ThumbPic1_5]
,[ThumbPic1_6]
,[ThumbPic1_7]
,[ThumbPic1_8]
,[ThumbPic1_9]
,[ThumbPic2]
,[ThumbPic3]
,[ThumbPic4]
,[ThumbPic5]
,[MidPic1]
,[MidPic2]
,[MidPic3]
,[MidPic4]
,[MidPic5]
,[BigPic1]
,[BigPic1_2]
,[BigPic2]
,[BigPic3]
,[BigPic4]
,[BigPic5])
select distinct ID,UserID,0,0,'''','''','''',getdate(),'''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''','''' from T_Product,'+ @tbName+' where [Operater]=''导入员'' and [Title]=[标题] and [UserID]=[用户ID] and [ShopID]=[店铺ID]'

exec(@sql)
end


请问哪里出错了,我找了好几遍啊!!!

可用分不多,不敢随便乱悬赏,敬请谅解!!!


加go以后提示的错误变成这样子了


...全文
250 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 14 楼 ky_min 的回复:
我是说,你在你执行的这个界面,单独执行选中的那块脚本时,可以临时加个表名,这样用于检测,脚本有没有正常进行,到真正要修改存储过程时,再删回去~~ 方法如#11的方法
明天上班过去试试
还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
我是说,你在你执行的这个界面,单独执行选中的那块脚本时,可以临时加个表名,这样用于检测,脚本有没有正常进行,到真正要修改存储过程时,再删回去~~ 方法如#11的方法
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 10 楼 ky_min 的回复:
我没注意看,你已经SELECT @SQL了,就应该要发现@SQL为空了 首先,你用来拼接成@SQL的参数有些为空,所以最后@SQL为空 你单独执行这块脚本时,@tbName赋值了吗 然后,动态执行里面不能有GO
亲,参数一直只有@tbName啊。@tbName作为传入参数,存储过程中没有给它赋值 啊
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 11 楼 Tiger_Zhao 的回复:
alter proc InsertPro
--是插入数据库后的临时表
@tbName nvarchar(50)
as
begin
这几句先注释起来,变成
DECLARE @tbName nvarchar(50)
SET @tbName = -- 这里赋上表名
同时最后的end也不要,再来看 PRINT 结果。
亲,我执行选中到end前面啊。可以麻烦你在看看我的截图么。。。 还有,那个表名不能写死,是动态的,因为有产品、店铺等要在同一个按钮,同一个方法里面导入,所以表名是动态的啊
Tiger_Zhao 2014-10-30
  • 打赏
  • 举报
回复
alter proc InsertPro
--是插入数据库后的临时表
@tbName nvarchar(50)
as
begin

这几句先注释起来,变成
DECLARE @tbName nvarchar(50)
SET @tbName = -- 这里赋上表名

同时最后的end也不要,再来看 PRINT 结果。
还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
我没注意看,你已经SELECT @SQL了,就应该要发现@SQL为空了 首先,你用来拼接成@SQL的参数有些为空,所以最后@SQL为空 你单独执行这块脚本时,@tbName赋值了吗 然后,动态执行里面不能有GO
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 8 楼 ky_min 的回复:


还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 4 楼 ky_min 的回复:
点 消息选项卡~
哪里的消息卡
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
要导入的目标表(产品的)叫做T_Product
还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
点 消息选项卡~
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
引用 2 楼 ky_min 的回复:
从你的错误提示,可以看出,你动态拼接的SQL有点问题
在EXEC 前面用PRINT 把SQL打印出来看下


你太聪明了,但还是只能很抱歉的说没有打印出来

还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
从你的错误提示,可以看出,你动态拼接的SQL有点问题 在EXEC 前面用PRINT 把SQL打印出来看下
快乐起航2020 2014-10-30
  • 打赏
  • 举报
回复
关联到多张表,包含店铺表,产品品牌表,产品图片表
目录如下: 第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 1.5.2 样本数据库的设计目的和设计思想 1.5.3 数据库图解 1.6 小结 第2章 关系数据库概念和SQL Server环境 2.1 数据库 2.1.1 关系数据库 2.1.2 数据库对象 2.1.3 什么是存储过程 2.2 SQL Server 2000的工具 2.2.1 Service Manage 2.2.2 Query Analyze 2.2.3 Enterprise Manage 2.2.4 DTS--导入导出数据 2.2.5 osql和isql 2.2.6 SQL Server Profile 2.2.7 客户端网络实用工具 2.2.8 帮助子系统和SQL Server Books Online 2.3 存储过程的基本操作 2.3.1 通过Query Analyzer执行存储过程 2.3.2 通过Enterprise Manager管理存储过程 2.3.3 在Enterprise Manager中编辑存储过程 2.3.4 在Query Analyzer中编辑存储过程 2.3.5 语法错误 2.3.6 Create Stored Procedure Wizar 2.4 小结 2.5 练习 第3章 存储过程设计概念 3.1 存储过程的结构 3.1.1 组成 3.1.2 功能 3.1.3 语法 3.2 存储过程的类型 3.3 编译 3.3.1 编译和执行过程 3.3.2 执行规划的重用 3.3.3 重编译存储过程 3.3.4 存储存储过程 3.4 管理存储过程 3.4.1 列举存储过程 3.4.2 查看存储过程 3.4.3 重命名存储过程 3.4.4 删除存储过程 3.4.5 查看相关和有依赖关系的对象 3.5 存储过程数据库应用开发中的作用 3.5.1 增强数据完整性 3.5.2 复杂商业规则和约束的一致实现 3.5.3 模块化设计 3.5.4 可维护性 3.5.5 减少网络流量 3.5.6 更快的执行 3.5.7 增强了安全性 3.6 小结 3.7 练习 第4章 Transact-SQL编程基础 4.1 TSQL标识符 4.2 数据库对象限定词 4.3 数据类型 4.3.1 数据类型的分组 4.3.2 数据类型的同义词 4.3.3 用户定义的数据类型 4.4 变量 4.4.1 局部变量 4.4.2 全局变量 4.4.3 table()变量 4.5 流控制语句 4.5.1 注释 4.5.2 语句块-Begin...End 4.5.3 条件执行--If语句 4.5.4 循环--While语句 4.5.5 无条件执行--GoTo语句 4.5.6 调度执行--WaitFor语句 4.6 光标 4.6.1 Transact-SQL光标 4.6.2 与光标有关的语句和函数 4.6.3 使用光标带来的问题 4.6.4 合理使用光标 4.7 小结 4.8 练习 第5章 函数 5.1 使用函数 5.1.1 用于选择和赋值中 5.1.2 用于过滤规则中 5.1.3 用于达式中 5.1.4 作为检查和默认的约束 5.1.5 替代 5.2 函数的类型 5.2.1 标量函数 5.2.2 集合函数 5.2.3 行集合函数 5.3 小结 5.4 练习 第6章 复合Transact-SQL 结构--批处理、脚本和事务 6.1 批处理 6.1.1 使用批处理 6.1.2 批处理与出错 6.1.3 DDL批处理 6.2 脚本 6.2.1 数据库脚本编程 6.3 事务概念 6.3.1 自动提交的事务 6.3.2 显式事务 6.3.3 隐式事务 6.3.4 事务处理的结构 6.3.5 嵌套的事务 6.3.6 已命名的事务 6.3.7 保存点 6.3.8 锁定 6.3.9 事务隔离级别和提示 6.3.10 分布式事务 6.3.11 典型的出错 6.4 小结 6.5 练习 第7章 调试和出错处理 7.1 调试 7.1.1 什么是“bug” 7.1.2 调试过程 7.1.3 调试工具和技术 7.1.4 典型的出错 7.2 出错处理 7.2.1 使用出错处理 7.2.2 为何要自寻烦恼 7.2.3 出错处理的策略 7.2.4 一种通用的出错处理方法 7.2.5 XACT_ABOR 7.2.6 Raiserro 7.3 小结 7.4 练习 第8章 确定专业的编程风格 8.1 源代码控制的概念 8.1.1 Microsoft Visual SourceSafe简介 8.1.2 管理Visual SourceSafe数据库 8.1.3 往Visual SourceSafe中添加一个数据库 8.1.4 管理存储过程 8.1.5 Visual SourceSafe Explore 8.2 命名约定 8.2.1 为何要自寻烦恼 8.2.2 命名变量和对象 8.2.3 建议的命名约定 8.3 小结 第9章 特殊类型的过程 9.1 存储过程和类型 9.1.1 用户定义的存储过程 9.1.2 系统存储过程 9.1.3 扩展的存储过程 9.1.4 临时存储过程 9.1.5 全局临时存储过程 9.1.6 远程存储过程 9.2 用户定义的函数 9.2.1 用户定义函数的设计 9.2.2 值用户定义函数 9.2.3 行内的值用户定义函数 9.2.4 在Enterprise Manager中管理用户定义的函数 9.3 触发器 9.3.1 物理设计 9.3.2 多记录上的修改操作 9.3.3 嵌套触发器和递归触发器 9.3.4 触发器的限制 9.3.5 SQL Server 2000中的触发器 9.3.6 管理触发器 9.3.7 设计触发器的建议 9.3.8 触发器中的事务管理 9.3.9 使用触发器 9.4 小结 9.5 练习 第10章 高级存储过程编程技术 10.1 动态地构造查询 10.1.1 执行一个串 10.1.2 通过窗体查询 10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与触发器 10.6.3 序列号 10.6.4 在一个临时中保存标识值 10.7 GUI 10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_OAGetPropert 11.1.5 sp-OADestro 11.1.6 sp_OAGetErrorInf 11.1.7 数据类型转换 11.2 运行程序 11.3 运行Windows脚本文件 11.4 与NT Registry的交互 11.4.1 Registry子树 11.4.2 键和子键 11.5 Registry和SQL Server 11.5.1 xp_regrea 11.5.2 xp_regwrit 11.5.3 xp_regdeletevalu 11.6 作业 11.6.1 作业的管理 11.6.2 Job Scheduler的可选方法 11.6.3 用于维护作业的存储过程 11.6.4 操作员和报警 11.7 SQL Server和Web 11.7.1 Web Assistan 11.7.2 Web任务存储过程 11.7.3 sp_makewebtas 11.7.4 sp_runwebtas 11.7.5 sp_dropwebtas 11.7.6 Web页模板 11.8 串模板 11.8.1 xp_sprint 11.8.2 xp_sscan 11.9 邮件 11.9.1 用于E-Mail工作的扩展存储过程 11.9.2 xp_sendmai 11.9.3 xp_readmai 11.9.4 sp_processmai 11.10 数据库部署 11.10.1 在以前的环境中 11.10.2 在新版本的环境中 11.11 安全 11.11.1 安全结构 11.11.2 实现安全性 11.11.3 登录和用户名的同步 11.11.4 使用存储过程、用户定义函数和视图来管理应用程序安全 11.11.5 使用一个代理用户来管理应用程序安全 11.11.6 使用应用程序角色来管理应用程序安全 11.12 小结 11.13 练习 第12章 SQL Server 2000中的XML支持 12.1 XML的变迁 12.2 XML简介 12.2.1 标记语言简介 12.2.2 构造标记语言的块 12.2.3 XM 12.2.4 XML文档质量 12.2.5 XML解析器和DOM 12.2.6 XML中的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server中的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3 使用XML发布数据库信息 12.5 小结 12.6 练习 附录A SQL Server 2000中的T-SQL和XML数据类型 附录B 练习答案
第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 1.5.2 样本数据库的设计目的和设计思想 1.5.3 数据库图解 1.6 小结 第2章 关系数据库概念和SQL Server环境 2.1 数据库 2.1.1 关系数据库 2.1.2 数据库对象 2.1.3 什么是存储过程 2.2 SQL Server 2000的工具 2.2.1 Service Manage 2.2.2 Query Analyze 2.2.3 Enterprise Manage 2.2.4 DTS--导入导出数据 2.2.5 osql和isql 2.2.6 SQL Server Profile 2.2.7 客户端网络实用工具 2.2.8 帮助子系统和SQL Server Books Online 2.3 存储过程的基本操作 2.3.1 通过Query Analyzer执行存储过程 2.3.2 通过Enterprise Manager管理存储过程 2.3.3 在Enterprise Manager中编辑存储过程 2.3.4 在Query Analyzer中编辑存储过程 2.3.5 语法错误 2.3.6 Create Stored Procedure Wizar 2.4 小结 2.5 练习 第3章 存储过程设计概念 3.1 存储过程的结构 3.1.1 组成 3.1.2 功能 3.1.3 语法 3.2 存储过程的类型 3.3 编译 3.3.1 编译和执行过程 3.3.2 执行规划的重用 3.3.3 重编译存储过程 3.3.4 存储存储过程 3.4 管理存储过程 3.4.1 列举存储过程 3.4.2 查看存储过程 3.4.3 重命名存储过程 3.4.4 删除存储过程 3.4.5 查看相关和有依赖关系的对象 3.5 存储过程数据库应用开发中的作用 3.5.1 增强数据完整性 3.5.2 复杂商业规则和约束的一致实现 3.5.3 模块化设计 3.5.4 可维护性 3.5.5 减少网络流量 3.5.6 更快的执行 3.5.7 增强了安全性 3.6 小结 3.7 练习 第4章 Transact-SQL编程基础 4.1 TSQL标识符 4.2 数据库对象限定词 4.3 数据类型 4.3.1 数据类型的分组 4.3.2 数据类型的同义词 4.3.3 用户定义的数据类型 4.4 变量 4.4.1 局部变量 4.4.2 全局变量 4.4.3 table()变量 4.5 流控制语句 4.5.1 注释 4.5.2 语句块-Begin...End 4.5.3 条件执行--If语句 4.5.4 循环--While语句 4.5.5 无条件执行--GoTo语句 4.5.6 调度执行--WaitFor语句 4.6 光标 4.6.1 Transact-SQL光标 4.6.2 与光标有关的语句和函数 4.6.3 使用光标带来的问题 4.6.4 合理使用光标 4.7 小结 4.8 练习 第5章 函数 5.1 使用函数 5.1.1 用于选择和赋值中 5.1.2 用于过滤规则中 5.1.3 用于达式中 5.1.4 作为检查和默认的约束 5.1.5 替代 5.2 函数的类型 5.2.1 标量函数 5.2.2 集合函数 5.2.3 行集合函数 5.3 小结 5.4 练习 第6章 复合Transact-SQL 结构--批处理、脚本和事务 6.1 批处理 6.1.1 使用批处理 6.1.2 批处理与出错 6.1.3 DDL批处理 6.2 脚本 6.2.1 数据库脚本编程 6.3 事务概念 6.3.1 自动提交的事务 6.3.2 显式事务 6.3.3 隐式事务 6.3.4 事务处理的结构 6.3.5 嵌套的事务 6.3.6 已命名的事务 6.3.7 保存点 6.3.8 锁定 6.3.9 事务隔离级别和提示 6.3.10 分布式事务 6.3.11 典型的出错 6.4 小结 6.5 练习 第7章 调试和出错处理 7.1 调试 7.1.1 什么是“bug” 7.1.2 调试过程 7.1.3 调试工具和技术 7.1.4 典型的出错 7.2 出错处理 7.2.1 使用出错处理 7.2.2 为何要自寻烦恼 7.2.3 出错处理的策略 7.2.4 一种通用的出错处理方法 7.2.5 XACT_ABOR 7.2.6 Raiserro 7.3 小结 7.4 练习 第8章 确定专业的编程风格 8.1 源代码控制的概念 8.1.1 Microsoft Visual SourceSafe简介 8.1.2 管理Visual SourceSafe数据库 8.1.3 往Visual SourceSafe中添加一个数据库 8.1.4 管理存储过程 8.1.5 Visual SourceSafe Explore 8.2 命名约定 8.2.1 为何要自寻烦恼 8.2.2 命名变量和对象 8.2.3 建议的命名约定 8.3 小结 第9章 特殊类型的过程 9.1 存储过程和类型 9.1.1 用户定义的存储过程 9.1.2 系统存储过程 9.1.3 扩展的存储过程 9.1.4 临时存储过程 9.1.5 全局临时存储过程 9.1.6 远程存储过程 9.2 用户定义的函数 9.2.1 用户定义函数的设计 9.2.2 值用户定义函数 9.2.3 行内的值用户定义函数 9.2.4 在Enterprise Manager中管理用户定义的函数 9.3 触发器 9.3.1 物理设计 9.3.2 多记录上的修改操作 9.3.3 嵌套触发器和递归触发器 9.3.4 触发器的限制 9.3.5 SQL Server 2000中的触发器 9.3.6 管理触发器 9.3.7 设计触发器的建议 9.3.8 触发器中的事务管理 9.3.9 使用触发器 9.4 小结 9.5 练习 第10章 高级存储过程编程技术 10.1 动态地构造查询 10.1.1 执行一个串 10.1.2 通过窗体查询 10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与触发器 10.6.3 序列号 10.6.4 在一个临时中保存标识值 10.7 GUI 10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_OAGetPropert 11.1.5 sp-OADestro 11.1.6 sp_OAGetErrorInf 11.1.7 数据类型转换 11.2 运行程序 11.3 运行Windows脚本文件 11.4 与NT Registry的交互 11.4.1 Registry子树 11.4.2 键和子键 11.5 Registry和SQL Server 11.5.1 xp_regrea 11.5.2 xp_regwrit 11.5.3 xp_regdeletevalu 11.6 作业 11.6.1 作业的管理 11.6.2 Job Scheduler的可选方法 11.6.3 用于维护作业的存储过程 11.6.4 操作员和报警 11.7 SQL Server和Web 11.7.1 Web Assistan 11.7.2 Web任务存储过程 11.7.3 sp_makewebtas 11.7.4 sp_runwebtas 11.7.5 sp_dropwebtas 11.7.6 Web页模板 11.8 串模板 11.8.1 xp_sprint 11.8.2 xp_sscan 11.9 邮件 11.9.1 用于E-Mail工作的扩展存储过程 11.9.2 xp_sendmai 11.9.3 xp_readmai 11.9.4 sp_processmai 11.10 数据库部署 11.10.1 在以前的环境中 11.10.2 在新版本的环境中 11.11 安全 11.11.1 安全结构 11.11.2 实现安全性 11.11.3 登录和用户名的同步 11.11.4 使用存储过程、用户定义函数和视图来管理应用程序安全 11.11.5 使用一个代理用户来管理应用程序安全 11.11.6 使用应用程序角色来管理应用程序安全 11.12 小结 11.13 练习 第12章 SQL Server 2000中的XML支持 12.1 XML的变迁 12.2 XML简介 12.2.1 标记语言简介 12.2.2 构造标记语言的块 12.2.3 XM 12.2.4 XML文档质量 12.2.5 XML解析器和DOM 12.2.6 XML中的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server中的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3 使用XML发布数据库信息 12.5 小结 12.6 练习 附录A SQL Server 2000中的T-SQL和XML数据类型 附录B 练习答案

34,590

社区成员

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

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