如何用SQL语句导出触发器的脚本

tcbo 2006-12-04 12:47:09
如何用SQL语句导出触发器的脚本
...全文
365 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2006-12-04
  • 打赏
  • 举报
回复
if exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunction')=0)
drop function fgetscript
go

/*--
调用sqldmo生成脚本的函数

--邹建 2003.07(引用请保留此信息)--*/

/*--调用实例
print dbo.fgetscript('zj','','','xzkh_sa','syscolumns')

/*--得到所有对象的脚本
declare @name varchar(250)
declare #aa cursor for
select name from sysobjects where xtype not in('S','PK','D','X','L')
open #aa
fetch next from #aa into @name
while @@fetch_status=0
begin
print dbo.fgetscript('zj','','','xzkh_sa',@name)
fetch next from #aa into @name
end
close #aa
deallocate #aa
--*/
--*/

create function fgetscript(
@servername varchar(50) --服务器名
,@userid varchar(50)='sa' --用户名,如果为nt验证方式,则为空
,@password varchar(50)='' --密码
,@databasename varchar(50) --数据库名称
,@objectname varchar(250) --对象名

) returns varchar(8000)
as
begin
declare @re varchar(8000) --返回脚本
declare @srvid int,@dbsid int --定义服务器、数据库集id
declare @dbid int,@tbid int --数据库、表id
declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量

--创建sqldmo对象
exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output
if @err<>0 goto lberr

--连接服务器
if isnull(@userid,'')='' --如果是 Nt验证方式
begin
exec @err=sp_oasetproperty @srvid,'loginsecure',1
if @err<>0 goto lberr

exec @err=sp_oamethod @srvid,'connect',null,@servername
end
else
exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password

if @err<>0 goto lberr

--获取数据库集
exec @err=sp_oagetproperty @srvid,'databases',@dbsid output
if @err<>0 goto lberr

--获取要取得脚本的数据库id
exec @err=sp_oamethod @dbsid,'item',@dbid output,@databasename
if @err<>0 goto lberr

--获取要取得脚本的对象id
exec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectname
if @err<>0 goto lberr

--取得脚本
exec @err=sp_oamethod @tbid,'script',@re output
if @err<>0 goto lberr

--print @re
return(@re)

lberr:
exec sp_oageterrorinfo NULL, @src out, @desc out
declare @errb varbinary(4)
set @errb=cast(@err as varbinary(4))
exec master..xp_varbintohexstr @errb,@re out
set @re='错误号: '+@re
+char(13)+'错误源: '+@src
+char(13)+'错误描述: '+@desc
return(@re)
end
go

caixia615 2006-12-04
  • 打赏
  • 举报
回复
up
点点星灯 2006-12-04
  • 打赏
  • 举报
回复
在查询分析器中,选择对应的表,选择触发器,生成脚本
chinasaber 2006-12-04
  • 打赏
  • 举报
回复
有点难度.
拓狼 2006-12-04
  • 打赏
  • 举报
回复
exec sp_helptext '触发器名称'
或者
select object_name(id),text from syscomments where id=object_id('触发器名称')
tcbo 2006-12-04
  • 打赏
  • 举报
回复
触发器内容如下:

CREATE TRIGGER SALESD_REF_ADD ON dbo.SALESD INSTEAD OF INSERT AS
DECLARE @FLOWS INT
SELECT @FLOWS=FLOWS FROM ACCSET
DECLARE @nBILLID INT,@nITEMNO INT,@nGOODSID INT,@nGUNITID INT,@nGQTY FLOAT,@nGPRICE FLOAT,@nTAXRATE FLOAT,@nTPRICE FLOAT,@nTAX FLOAT,@nGAMOUNT FLOAT,@nAMOUNT FLOAT,@nBQTY FLOAT,@nBPRICE FLOAT,@nBTPRICE FLOAT,@nCKQTY FLOAT,@nKPQTY FLOAT,@nXZ INT,@nCANCEL INT,@nPARENTID INT,@nSPLIT INT,@nMEMO VARCHAR(64),@nDISCOUNTRATE FLOAT,@nDISCOUNT FLOAT,@nBOMQTY FLOAT,@nUD1 VARCHAR(64),@nUD2 VARCHAR(64),@nUD3 VARCHAR(64),@nUD4 VARCHAR(64),@nUD5 VARCHAR(64),@nREFBILLID INT,@nREFDATATYPE INT,@nREFBILLCODE VARCHAR(30),@nREFITEMNO INT,@nURATE FLOAT,@nSTATUS INT,@nREFCLIENTID INT,@nREFDEPTID INT,@nREFSTOREID INT,@nCVID INT
DECLARE NEWED CURSOR LOCAL FORWARD_ONLY STATIC OPTIMISTIC FOR SELECT BILLID,ITEMNO,GOODSID,GUNITID,GQTY,GPRICE,TAXRATE,TPRICE,TAX,GAMOUNT,AMOUNT,BQTY,BPRICE,BTPRICE,CKQTY,KPQTY,XZ,CANCEL,PARENTID,SPLIT,MEMO,DISCOUNTRATE,DISCOUNT,BOMQTY,UD1,UD2,UD3,UD4,UD5,REFBILLID,REFDATATYPE,REFBILLCODE,REFITEMNO,URATE,STATUS,REFCLIENTID,REFDEPTID,REFSTOREID,CVID FROM INSERTED
OPEN NEWED
FETCH NEXT FROM NEWED INTO @nBILLID,@nITEMNO,@nGOODSID,@nGUNITID,@nGQTY,@nGPRICE,@nTAXRATE,@nTPRICE,@nTAX,@nGAMOUNT,@nAMOUNT,@nBQTY,@nBPRICE,@nBTPRICE,@nCKQTY,@nKPQTY,@nXZ,@nCANCEL,@nPARENTID,@nSPLIT,@nMEMO,@nDISCOUNTRATE,@nDISCOUNT,@nBOMQTY,@nUD1,@nUD2,@nUD3,@nUD4,@nUD5,@nREFBILLID,@nREFDATATYPE,@nREFBILLCODE,@nREFITEMNO,@nURATE,@nSTATUS,@nREFCLIENTID,@nREFDEPTID,@nREFSTOREID,@nCVID
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRANSACTION
IF (@nREFBILLID>0 AND @nREFDATATYPE>0 AND @nPARENTID=0)
IF (@FLOWS=1)
BEGIN
IF NOT EXISTS(SELECT BILLID FROM SALE WHERE BILLID=@nREFBILLID AND BILLCODE=@nREFBILLCODE AND CLIENTID=@nREFCLIENTID AND DEPTID=@nREFDEPTID AND STATUS=1 AND FINISHED=0)
BEGIN
RAISERROR('REF_BILL_MODIFY',16,1)
ROLLBACK
RETURN
END

IF NOT EXISTS(SELECT GOODSID FROM SALEDQ WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID)
BEGIN
RAISERROR('REF_GOODS_MODIFY',16,1)
ROLLBACK
RETURN
END

IF NOT EXISTS(SELECT GOODSID FROM SALED WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID)
BEGIN
RAISERROR('REF_GOODS_MODIFY',16,1)
ROLLBACK
RETURN
END

UPDATE SALED SET EXEQTY=EXEQTY+@nBQTY WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID
UPDATE SALED SET EXEQTY=EXEQTY+(@nBQTY*BOMQTY) WHERE PARENTID=@nREFITEMNO AND BILLID=@nREFBILLID
UPDATE SALEDQ SET EXEQTY=EXEQTY+@nBQTY WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID
IF NOT EXISTS(SELECT BILLID FROM SALEDQ WHERE EXEQTY<BQTY AND BILLID=@nREFBILLID) UPDATE SALE SET FINISHED=1 WHERE BILLID=@nREFBILLID AND DEPTID=@nREFDEPTID AND CLIENTID=@nREFCLIENTID
END

IF (@FLOWS=2 OR @FLOWS=3)
BEGIN
IF NOT EXISTS(SELECT BILLID FROM SALEO WHERE BILLID=@nREFBILLID AND BILLCODE=@nREFBILLCODE AND STOREID=@nREFSTOREID AND DEPTID=@nREFDEPTID AND STATUS=1)
BEGIN
RAISERROR('REF_BILL_MODIFY',16,1)
ROLLBACK
RETURN
END

IF NOT EXISTS(SELECT GOODSID FROM SALEOD WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID)
BEGIN
RAISERROR('REF_GOODS_MODIFY',16,1)
ROLLBACK
RETURN
END

IF NOT EXISTS(SELECT GOODSID FROM SALEOD WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BQTY>=SQTY+@nBQTY AND BILLID=@nREFBILLID)

BEGIN
RAISERROR('REF_GOODS_QTY2',16,1)
ROLLBACK
RETURN
END

UPDATE SALEOD SET SQTY=SQTY+@nBQTY WHERE GOODSID=@nGOODSID AND ITEMNO=@nREFITEMNO AND BILLID=@nREFBILLID
IF NOT EXISTS(SELECT BILLID FROM SALEOD WHERE SQTY<BQTY AND BILLID=@nREFBILLID) UPDATE SALEO SET FINISHED=1 WHERE BILLID=@nREFBILLID AND DEPTID=@nREFDEPTID AND STOREID=@nREFSTOREID
END

INSERT INTO SALESD (BILLID,ITEMNO,GOODSID,GUNITID,GQTY,GPRICE,TAXRATE,TPRICE,TAX,GAMOUNT,AMOUNT,BQTY,BPRICE,BTPRICE,CKQTY,KPQTY,XZ,CANCEL,PARENTID,SPLIT,MEMO,DISCOUNTRATE,DISCOUNT,BOMQTY,UD1,UD2,UD3,UD4,UD5,REFBILLID,REFDATATYPE,REFBILLCODE,REFITEMNO,URATE,STATUS,REFCLIENTID,REFDEPTID,REFSTOREID,CVID) SELECT @nBILLID,@nITEMNO,@nGOODSID,@nGUNITID,@nGQTY,@nGPRICE,@nTAXRATE,@nTPRICE,@nTAX,@nGAMOUNT,@nAMOUNT,@nBQTY,@nBPRICE,@nBTPRICE,@nCKQTY,@nKPQTY,@nXZ,@nCANCEL,@nPARENTID,@nSPLIT,@nMEMO,@nDISCOUNTRATE,@nDISCOUNT,@nBOMQTY,@nUD1,@nUD2,@nUD3,@nUD4,@nUD5,@nREFBILLID,@nREFDATATYPE,@nREFBILLCODE,@nREFITEMNO,@nURATE,@nSTATUS,@nREFCLIENTID,@nREFDEPTID,@nREFSTOREID,@nCVID
FETCH NEXT FROM NEWED INTO @nBILLID,@nITEMNO,@nGOODSID,@nGUNITID,@nGQTY,@nGPRICE,@nTAXRATE,@nTPRICE,@nTAX,@nGAMOUNT,@nAMOUNT,@nBQTY,@nBPRICE,@nBTPRICE,@nCKQTY,@nKPQTY,@nXZ,@nCANCEL,@nPARENTID,@nSPLIT,@nMEMO,@nDISCOUNTRATE,@nDISCOUNT,@nBOMQTY,@nUD1,@nUD2,@nUD3,@nUD4,@nUD5,@nREFBILLID,@nREFDATATYPE,@nREFBILLCODE,@nREFITEMNO,@nURATE,@nSTATUS,@nREFCLIENTID,@nREFDEPTID,@nREFSTOREID,@nCVID

IF @@TRANCOUNT > 0
COMMIT TRAN
END
CLOSE NEWED
DEALLOCATE NEWED




tcbo 2006-12-04
  • 打赏
  • 举报
回复
执行print dbo.fgetscript('SINOUR-13','sa','123','HEP_Sample','SALESD_REF_ADD')后出现:

错误号: 0x8004271A
错误源: ODSOLE Extended Procedure
错误描述: srv_convert 中的O

其中'SALESD_REF_ADD'是表SALESD的一个触发器名称
zjcxc 2006-12-04
  • 打赏
  • 举报
回复
有具体的错误表现么?
tcbo 2006-12-04
  • 打赏
  • 举报
回复
zjcxc(邹建)老大,你写这个我用过的,但是有错误啊
有的可以生成,有的不能生成
适用的数据库:8i, 9i数据库下该脚本通用

功能:导出一个用户的数据结构,包括表、视图、索引、约束、存储过程、触发器、函数、序列等等的定义,并且每个定义为一个文件
导出的各个对象的定义格式比较规范。
如表的定义为:
prompt Create Table BBNACTIVEHISTORY
CREATE TABLE test(
USERID VARCHAR2(20) NOT NULL,
SPUSERID VARCHAR2(30) NOT NULL,
PRODUCTID VARCHAR2(20) NOT NULL,
GAMETYPE NUMBER NOT NULL,
STARTTIME DATE NOT NULL,
CHARGED CHAR(1) default 'N' NOT NULL
);

每个存储过程有多个参数,可以控制输出何种形式的内容,如可以只生成删除表的sql,可以在生成的创建表与索引的语句上加上storage子句等等。

运行 user_dll_sql.sql的准备工作:

1. 修改win_mkdir.bat文件,以便生成存放生成脚本的基本目录及其子目录
win_mkdir.bat文件生成上面所需要的所有目录
打开win_mkdir.bat文件,修改BASE_DIC变量的值,如c:\temp\,该目录是存放生成的脚本文件的基本目录


2. 运行 win_mkdir.bat文件创建必要的目录

3. 用sql*plus以想导出数据结构的用户登陆到数据库
运行user_dll_sql.sql 生成文件的路径文件,生成所有的ddl语句
运行文件时,将存放生成脚本的基本目录作为参数(与步骤1改的基本目录一样)传入, ?要根据需要改为实际的目录
SQL> @?\user_ddl_sql.sql c:\temp\


说明:
运行win_mkdir.bat,文件后,会自动在生成脚本的基本目录下产生如下目录:
procedures, functions, triggers, packages, temp_sql.
每个目录的作用如下:
procedures: 该目录存放存储过程, 有子目录separ_files, 该目录下的每个文件都是一个存储过程的源代码
functions: 该目录存放函数, 有子目录separ_files, 该目录下的每个文件都是一个函数的源代码
triggers: 该目录存放触发器, 有子目录separ_files, 该目录下的每个文件都是一个触发器的源代码
packages: 该目录存放包, 有子目录separ_files, 该目录下的每个文件都是一个包的源代码
有子目录separ_headbobdy_file, 该目录下的每个文件都是一个包的包头或包体的源代码
temp_sql:存放生成的临时文件
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个C:.│ sqlserver2000.txt│ ├─第01章│ 1.9.1 设置内存选项.sql│ 1.9.2(2) 使用文件及文件组.sql│ 1.9.2(3) 调整tempdb数据库的文件属性.sql│ ├─第02章│ │ 2.1 日期概念理解中的一些测试.sql│ │ 2.2.4 CONVERT在日期转换中的使用示例.sql│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql│ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql│ │ 2.4.1 日期格式化处理.sql│ │ 2.4.2 日期推算处理.sql│ │ 2.4.3 特殊日期加减函数.sql│ │ 2.5.1 查询指定日期段内过生日的人员.sql│ │ 2.5.2 生成日期列表的函数.sql│ │ 2.5.3 工作日处理函数(标准节假日).sql│ │ 2.5.3 工作日处理函数(自定义节假日).sql│ │ 2.5.4 计算工作时间的函数.sql│ │ │ └─其他│ 交叉表.sql│ 任意两个时间之间的星期几的次数-横.sql│ 任意两个时间之间的星期几的次数-纵.sql│ 复杂年月处理.sql│ 统计--交叉表+日期+优先.sql│ ├─第03章│ │ 3.2 各种字符串分拆处理函数.sql│ │ 3.3 各种字符串合并处理示例.sql│ │ 3.4.1 分段截取函数.sql│ │ 3.4.2 分段更新函数.sql│ │ 3.4.3 IP地址处理函数.sql│ │ 3.5.1 字符串比较函数.sql│ │ 3.5.2 字符串并集&交集处理示例.sql│ │ 3.5.3 字符串分拆并统计的处理示例.sql│ │ 3.5.5 字符串处理示例--列车车次查询.sql│ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql│ │ 3.6.3 动态参数的存储过程示例.sql│ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql│ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql│ │ 3.7.4 text与image字段转换处理示例.sql│ │ 3.7.5 ntext字段的REPLACE处理示例.sql│ │ │ └─其他│ varbinary转换成字符串.sql│ 关键字搜索.sql│ 分解公式.sql│ 字符串分拆--格式化.sql│ 得到一个字符串在另一个字符串中出现的次数.sql│ 数字转换成十六进制.sql│ 比较第一与第二个字符串,是否有连续的5个字符相同.sql│ 生成查询的模糊匹配字符串.sql│ 简繁转换.sql│ 统计一个表中某个字符出现最多的字母.sql│ 非法字符串处理.sql│ ├─第04章│ │ 4.1.5 在各种处理中应用排序规则的示例.sql│ │ 4.2.1 排序规则在拼音处理中的应用.sql│ │ 4.2.2 排序规则在全角与半角处理中的应用.sql│ │ │ └─其他│ 生成GB2312汉字表.sql│ 生成GBK汉字表.sql│ 自动获取汉字笔画.sql│ ├─第05章│ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql│ │ 5.1.1 修改标识值的示例.sql│ │ 5.1.1 标识列与普通列互相转换的示例.sql│ │ 5.2.1 查表法按日期生成流水号的示例.sql│ │ 5.2.1 查表法生成流水号的示例.sql│ │ 5.2.2 使用编号表按日期生成流水号的示例.sql│ │ 5.2.2 使用编号表生成流水号的示例.sql│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql│ │ 5.2.3 生成纯数字随机编号的示例.sql│ │ 5.3.2 融合了补号处理的编号生成处理示例.sql│ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql│ │ 5.3.3 使用临时表进行编号重排的处理示例.sql│ │ 5.3.3 使用子查询进行编号重排的处理示例.sql│ │ 5.3.3 名次查询的处理示例.sql│ │ 5.4.1 查询已用编号分布情况的示例(临时表法).sql│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql│ │ 5.4.2 查询缺号分布情况的示例.sql│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql│ │ 5.4.4 缺勤天数统计的处理示例.sql│ │ │ └─其他│ -补位法.sql│ 以另一个表的字段做默认值.sql│ 以另一表的字段生成编号.sql│ 关联部门流水号.sql│ 十六进制.sql│ 学号.sql│ 开票统计--涉及到连号处理.sql│ 新编号查询示例(分类查询).sql│ 新编号查询示例.sql│ 日期流水号.sql│ 材料流水号.sql│ 流水号.sql│ 箱编号连号处理.sql│ 类别自动生成编号示例.sql│ 自已做标识列的例子.sql│ 触发器自动维护已用&未用编号.sql│ 连续编号.sql│ 防止重复的示例.sql│ 项目编号=各项目独立流水号&各年不同.sql│ ├─第06章│ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql│ │ 6.1.2 各种联接的使用示例.sql│ │ 6.1.2 多表联结导致记录重复的示例.sql│ │ 6.1.3 使用UNION实现库存报表的示例.sql│ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql│ │ 6.1.6 随机出题的示例.sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例.sql│ │ 6.2.1 UNION ALL实现的分级汇总示例.sql│ │ 6.3.1 简单的交叉报表处理示例.sql│ │ 6.3.2 多列转换为行的交叉报表处理示例.sql│ │ 6.3.3 行值动态变化的交叉报表处理示例(转换多列).sql│ │ 6.3.3 行值动态变化的交叉报表处理示例.sql│ │ 6.3.4 化解字符串不能超过8000的方法.sql│ │ 6.3.5 特殊的交叉报表处理示例.sql│ │ 6.4.1 库存明细帐处理示例(包含结存数).sql│ │ 6.4.1 库存明细帐处理示例.sql│ │ 6.4.2 同期及上期数据对比处理示例.sql│ │ 6.4.3 动态分组处理示例.sql│ │ 6.4.4 排行榜处理示例.sql│ │ │ └─其他│ 交叉表--复杂名次.sql│ 交叉表-优先级处理.sql│ 交叉表分析.sql│ 分级汇总.sql│ 分组交叉表.sql│ 列转行.sql│ 固定行列报表.sql│ 复杂交叉表.sql│ 复杂交叉表1.sql│ 多栏显示.sql│ 日期+星期+时间.sql│ 格式化报表.sql│ 横转竖-1.sql│ 横转竖-字段名.sql│ 横转竖-生成字段名.sql│ 横转竖.sql│ 行列互换的复杂交叉表.sql│ 限制列数的交叉表.sql│ ├─第07章│ │ 7.1 splitpage.asp│ │ 7.2.1 TOP n 实现的通用分页存储过程.sql│ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql│ │ 7.2.3 临时表缓存实现的通用分页存储过程.sql│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql│ │ 7.3.1 实现随机分页的通用分页存储过程.sql│ │ 7.3.2 根据分类表实现的分页存储过程.sql│ │ │ └─其他│ sp_cursor.sql│ 基本方法.sql│ ├─第08章│ │ 8.1.2 树形数据分级汇总示例.sql│ │ 8.1.3 树形数据编号重排的通用存储过程.sql│ │ 8.1.3 树形数据编号重排示例.sql│ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql│ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql│ │ 8.1.5 删除节点处理的通用存储过程.sql│ │ 8.1.5 移动节点处理的通用存储过程.sql│ │ 8.2.2 树形数据层次显示处理示例.sql│ │ 8.2.2 树形数据广度排序处理示例.sql│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql│ │ 8.2.2 树形数据深度排序处理示例(递归法).sql│ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql│ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql│ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql│ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql│ │ 8.2.8 逐级汇总示例(用户定义函数法).sql│ │ 8.3.1 产品配件清单查询示例.sql│ │ 8.3.2 最短乘车路线查询示例.sql│ │ │ └─其他│ xml菜单.sql│ 宝塔形数据的处理-1.sql│ 宝塔形数据的处理.sql│ 树形数据生成xml.sql│ ├─第09章│ │ 9.1.3 访问外部数据源方法总结.sql│ │ 9.5.1 二进制文件存取示例(T-SQL).sql│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs│ │ a.txt│ │ Schema.ini│ │ │ └─其他│ bcp-数据导入导出(全).sql│ bcp-数据导入导出-二进制文件.sql│ bcp-数据导出为文件.sql│ bcp表数据存为XML.sql│ SQL Server到Oracle连接服务器的实现.sql│ SQL Server到SQLBASE连接服务器的实现.sql│ SQL Server到SYBASE连接服务器的实现.sql│ sql导出mysql.sql│ textcopy实现文件存取.sql│ Vb程序实现文件存取.sql│ 导入文本文件时如何指定字段类型.sql│ 导出northwind中Employees的图像.sql│ 将某个目录上的Excel表,导入到数据库中.sql│ 数据导入导出基本方法.sql│ 用ASP上传&下载文件.sql

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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