日期:2014-05-17  浏览次数:20571 次

t-sql存储过程,MSSOL2008R2 存储多个xml文件
现在MSSQL2008R2中新建一个表名为xtable,有两列,第一列是name,代表文件名;第二列是value,代表存储的文件内容,数据格式分别为varchar和xml。
      所有的xml文件存储在一个文件夹里,路径假设为‘F:\data\’,每个文件的文件名为它的编号,例如第一个文件为00000,第二个为00001。
      这里要注意的是,这些文件都为某工具生成的,所以没有后缀名!!!所以说文件名不是00000.xml而是00000!!!
     我写了一个存储过程如下:
   
CREATE PROCEDURE Demo1
@x int = 0
AS
BEGIN 
while @x < 2
begin
         declare @pathnvarchar(200)
        set @path = N'insert into xtable(value)
select * from openrowset
(bulk''F:\data\'
+ right(cast(@x as nvarchar),5) + N'’,SINGLE_CLOB) as x';
      EXECsp_executesql @path 
      set @x = @x + 1 
   end
END
明显是  set @path句有错,请问应该怎么写???
t-sqlopenrowset?bulk t-sql bulk 存储过程

------解决方案--------------------
引用:
请问我现在需要插入文件名到表中,应该怎么插呢,引号那块总是不对。。打印出来的@path括号还少一个

ALTER PROCEDURE Demo1
@x int = 0
AS
BEGIN 
    while @x < 2
    begin
        declare @path nvarchar(4000) --长度不够
                declare @strname nvarchar(200)
                set @strname = right(cast(@x as nvarchar),5) 
        set @path = N'
        insert into xtable(name,value)
                select '''+ @strname +''',BulkColumn from /*--拼的话,记得加''号,且转义*/
                (