insert时,将某字段值保存到文件,字段值替换为文件路径。

vansoft 2015-06-11 01:46:17
前台用insert into插入数据到中,该表有个字段,文本型,长度MAX,
如何在插入的时候,把值保存到本地一个文件中,比如:c:\test.xml
同时数据库中这个字段的值改为文件路径?
...全文
201 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vansoft 2015-06-12
  • 打赏
  • 举报
回复
引用 3 楼 ky_min 的回复:
这个要很大的权限 以上是通过 触发器 和 BCP方式,不能处理多条插入的情况 不考虑并发情况 因此建议在程序上实现
高手啊。 再多问一下,当前台程序insert into时,通过触发器, 把XML内容保存到另一张表T中,GUID,XML内容 本表字段的值直接换成上面GUID,这样做,应该问题不大吧? 我是想用一个后台程序,不停地把T中的XML内容保存为GUID.xml文件。
还在加载中灬 2015-06-11
  • 打赏
  • 举报
回复
--需要开启一下配置
EXEC sp_configure 'show advanced options',1
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
GO
--TB20150611003为模拟数据表
IF OBJECT_ID('TB20150611003')IS NOT NULL
DROP TABLE TB20150611003
GO
CREATE TABLE TB20150611003(ID INT PRIMARY KEY,V NVARCHAR(MAX))
GO
--需要一个全局中转表
IF OBJECT_ID('中转表')IS NOT NULL
DROP TABLE 中转表
GO
CREATE TABLE 中转表(ID INT PRIMARY KEY,V NVARCHAR(MAX))
GO
CREATE TRIGGER TRG_TRG_20150611003
ON TB20150611003
INSTEAD OF INSERT
AS
BEGIN
TRUNCATE TABLE 中转表
INSERT INTO 中转表
SELECT * FROM INSERTED
DECLARE @SQL VARCHAR(8000),@GUID VARCHAR(50)
SET @GUID=LTRIM(NEWID())
SET @SQL='bcp "SELECT V FROM TestDB..中转表" queryout "C:\'+LTRIM(@GUID)+'.xml" -c -S"服务器\实例名" -U"登陆名" -P"密码"'
EXEC master..xp_cmdshell @SQL
INSERT INTO TB20150611003
SELECT ID,@GUID FROM INSERTED
END
GO
--以上模拟完毕
--以下开始插入
INSERT INTO TB20150611003
SELECT 1,'<V>1</V>'
这个要很大的权限
以上是通过 触发器 和 BCP方式,不能处理多条插入的情况
不考虑并发情况

因此建议在程序上实现
LongRui888 2015-06-11
  • 打赏
  • 举报
回复
这个用c#来实现比较好。 不过ssis也可以做的,但是这是通过调用里面的 功能来实现的。
Cherise_huang 2015-06-11
  • 打赏
  • 举报
回复
这要程序实现

34,838

社区成员

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

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