我有一组名为GreenLine1.mp3,GreenLine2.mp3 e.t.c的音频文件.我打算将它们写成BLOB(我使用的是MS sql Server’08),这是我的sql请求:
DECLARE @aud AS VARBINARY(MAX) DECLARE @num AS INT -- Load the audio data SET @num=1 WHILE (@num<38) BEGIN; SELECT @aud = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET( BULK 'C:\Users\Ilya\folder\GreenLine' + CAST(@num AS VARCHAR) + '.mp3',SINGLE_BLOB ) AS x -- Insert the data to the table INSERT INTO Mb2.dbo.Audios (Id,[Content]) SELECT NEWID(),@aud SET @num = @num + 1 END;
我有一个错误:”,expecting’,’或’)附近的语法不正确.
如果我试着写
‘C:\Users\Ilya\folder\GreenLine’ +
CAST(@num AS VARCHAR) + ‘.mp3’
变成一个变量并把它放在BULK之后,我在@variable,期望STRING或TEXT_LEX附近得到不正确的语法
解决方法
您不能参数化或连接
OPENROWSET的参数.它只是常量值.
您必须使用动态sql和临时表,或者考虑使用SSIS