执行存储过程时出现以下错误:
消息 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
。我使用下划线来标识我需要用于报告目的的文件名组成部分。