sql程序中的文件名

时间:2012-10-05 19:04:04

标签: sql sql-server sql-server-2008

我在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 

提前致谢

亚历

2 个答案:

答案 0 :(得分: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 );

我把它包裹在光标内部(我知道......我是一个使用光标的坏男孩。但我认为这是一个很好的使用)所以我可以用不同的方式填充我的变量文件名每次迭代。

答案 1 :(得分: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'; EXEC(@sql);