ストアド プロシージャを実行すると、次のエラーが発生します。
メッセージ 102、レベル 15、状態 1、行 6
'2011' 付近の構文が正しくありません。
(1 行が影響を受けます)
ストアド プロシージャは次のとおりです。
ALTER PROCEDURE [dbo].[DeliveryFileNames]
AS
BEGIN
SET NOCOUNT ON;
declare @SQL nvarchar(4000)
Create Table #DelivTemp(
Style nvarchar(50),
Material nvarchar(50),
Filename nvarchar(100),
delivered_date date)
set @SQL=
N'insert into #DelivTemp
Select distinct Style,Material,filename
from OPENQUERY(GCS_PRODUCTION,
''SELECT LEFT(FILENAME,locate(''''_'''',FILENAME)-1)as Style,
substring_index(filename,''''_'''',2)as Material,filename,
delivered_date FROM view_delivery_log
where delivered_date > ''2011%'' order by Style '')'
exec (@SQL)
drop table dbo.DelivFN
Select * into dbo.DelivFN
from #DelivTemp
END
OpenQuery を使用して、SQL Server 2008 R2 上のリンク サーバーから SQL テーブルを更新しています。
\
アンダースコアが本当の問題であることは知っていますが、、、および一重引用符と二重引用符の%
両方を含む多数のオプションを試しました。
とにかく、私は同じ結果を得ています。ストアド プロシージャから独立してクエリを実行し、正しい結果を得ることができます。何度か参照されているファイル名フィールドはフォーマットされて00000000_ABC4_A.png
います。アンダースコアを使用して、レポート目的で必要なファイル名のコンポーネントを識別しています。