0

我在 T-SQL 中有这个工作

插入 provaxml (arquivo)

sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N'C:\2012-09\myfile.xml', SINGLE_BLOB)as arquivo

我正在尝试编写一个程序:

alter proc adentro (@nome nvarchar(max))as
insert into provaxml  (arquivo)
sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N'C:\2012-09\myfile.xml', SINGLE_BLOB)as arquivo 

我必须如何写才能通过变量@nome 更改文件名我尝试过这种方式但没有用

 alter proc adentro (@nome nvarchar(max))as
insert into provaxml  (arquivo)
sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N @nome, SINGLE_BLOB)as arquivo 

提前致谢

亚历杭德罗

4

2 回答 2

1

尝试这样的事情......(我昨天刚刚使用这种技术进行了类似的查询)

DECLARE @sql varchar(4000);
SET @sql = 'INSERT INTO provaxml (arquivo) SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK ''' + @nome + ''', SINGLE_BLOB) as arquivo';

EXEC( @sql );

我把这个包裹在一个游标里(我知道......我是一个使用游标的坏孩子。但我认为这是一个很好的用途),这样我就可以在每次迭代时用不同的文件名填充我的变量.

于 2012-10-05T19:17:32.243 回答
0

谢谢 DeadZone 我用这段代码写过并且正在工作

ALTER proc [dbo].[adenti] (@entra nvarchar(max))as DECLARE @sql varchar(4000); SET @sql = 'INSERT INTO provaxml (arquivo) SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK ''' + @entra + ''', SINGLE_BLOB) as arquivo'; 执行(@sql);

于 2012-10-05T20:34:38.713 回答