34,838
社区成员




--需要开启一下配置
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>'
这个要很大的权限