Jump to content

Recommended Posts

Posted (edited)

Estou a tentar exportar para um ficheiro XML o conteúdo de uma tabela. A minha ideia está em que quando uma determinada linha da tabela seja Inserida, Alterada ou Eliminada o ficheiro XML seja gerado para uma pasta.

O que me está a acontecer é que o SQL Server fica todo bloqueado, estou a utilizar o Management 2008 assim como a BD.

Agradecia que fizessem este exercício:

1) Base de dados

CREATE TABLE [dbo].[Entity](
[EntID] [int] IDENTITY(1,1) NOT NULL,
   [EntName] [varchar](150) NULL,
[EntAddress] [varchar](max) NULL,
[iDEntType] [int] NULL,
[EntVAT] [varchar](50) NOT NULL)

2) Trigger

CREATE TRIGGER [dbo].[utg_XML]
  ON  [dbo].[Entity]
  AFTER INSERT,DELETE,UPDATE
AS
BEGIN
EXEC usp_XML
END

3) Stored Procedure

CREATE PROCEDURE [dbo].[usp_XML]
AS
BEGIN
DECLARE @FileName VARCHAR(1000)
DECLARE @SQLCmd   VARCHAR(1000)
SELECT  @FileName = 'C:\Entities.xml'
SELECT  @SQLCmd = 'bcp ' +
				  '"SELECT EntID as ID, EntName as NAME, EntAddress as ADDRESS, EntVAT as VAT'+
				  ' FROM GarmentCycle.dbo.Entity ' +
				  ' FOR XML PATH (''Entity''),ELEMENTS, ROOT (''Entities'') "' +
							  ' queryout '  +
				  @FileName +
				  ' -w -T -S' + @@SERVERNAME
EXECUTE master..xp_cmdshell @SQLCmd
END

PROBLEMAS:

Ao mexer em algum registo fica tudo bloqueado e o ficheiro também fica bloqueado e com 0 bytes.

Alguém sabe como posso contornar isto?

Muito Obrigado

Edited by olajfm
Posted

Para apanhar os registos modificados não deves fazer assim, deves utilizar as tabelas Inserted e Deleted que estão disponíveis dentro do trigger para apanhares os registos que são modificados.

Pedro Martins

Não respondo a duvidas por PM

Posted

Eu preciso de gerar o ficheiro XML sempre com os dados actuais da tabela, por isso é que parti para este raciocínio de gerar o ficheiro sempre que haja um INSERT, UPDATE or DELETE no Trigger.

Nunca utilizei estas tabelas temporárias, por aquilo que descrevi pode-me dar mais algumas pistas p.f.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.