declare @Path varchar(max) = 'E:\test\PS\Document\159203\Driver''s License and Insurance Card';
EXEC ('INSERT INTO table
SELECT ''' + @id+ ''', BulkColumn FROM OpenRowSet ( Bulk ''' + @path + ''', Single_Blob) AS table')
这里的路径具有带引号的文件名,我无法转义并得到错误:
Msg 105,第15级,状态1,第36行字符串',Single_Clob)后的右引号引起来[AS [NOTE_CONTENT]'
例如,您只需要再次转义单引号即可。>>
declare @Path varchar(max) = 'E:\test\PS\Document\159203\Driver''s License and Insurance Card', @Id varchar(38) = '', @Sql varchar(max); set @Sql = 'SELECT ''' + @id + ''', ''' + replace(@path,'''','''''') + ''''; print (@Sql); exec (@Sql);
注意:使用SQL,我可以执行而无需访问文件,只需进行调整即可。