Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql T-SQL:字符串concat的问题_Tsql_Sql Server 2008_String Concatenation_Openrowset - Fatal编程技术网

Tsql T-SQL:字符串concat的问题

Tsql T-SQL:字符串concat的问题,tsql,sql-server-2008,string-concatenation,openrowset,Tsql,Sql Server 2008,String Concatenation,Openrowset,我有一组名为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 VAR

我有一组名为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;
将@aud声明为VARBINARY(最大值)
将@num声明为INT
--加载音频数据
设置@num=1

WHILE(@num您不能参数化或连接的参数。它只是常量值


您必须使用动态SQL和临时表,或者考虑使用SSIS,例如

< P>。当我与OpenQue:

有同样的问题时,这篇文章指出了我的正确方向。


基本上,您可以将整个语句封装在一个变量(nvarchar)中,包括openrowset,然后运行
exec sp_executesql@sql
。但是,阅读
会有点难看,因为您必须使用

链接来转义它们。这就是链接失败的原因