2016-06-22 24 views
0

如果文件名由'?'組成,我想對所有以'ABC_%'開頭的數據庫執行選擇查詢。SQL Server |使用sp_MSforeachdb將選擇查詢的輸出存儲到臨時表

寫了下面的查詢用於此目的,但它會導致什麼:「?」

DECLARE @result TABLE (o varchar(250), h uniqueidentifier, i uniqueidentifier, k nvarchar(250)) 
INSERT INTO @result 
EXEC sp_MSforeachdb 'Begin 
USE [?] 
IF DB_NAME() like ''ABC_%'' 
BEGIN 
SELECT DB_NAME() as DatabaseName 
     ,[FileId] 
     ,[HRDataId] 
     ,[FileName] 
    FROM [?].[dbo].[UploadedFile] 
where FileName like ''%?%'' 
END 
End' 
SELECT o 
    ,h 
    ,i 
    ,k 
    from @result; 

但據我所知,有些數據庫有一些在fileName字段中。但結果總是空白。

問候, 恩賈妮

回答

0

這是因爲?在sp_MSforeachdb存儲過程中被視爲數據庫名稱。我逃避使用?使用: where FileName like ''%'' + CONVERT(VARCHAR(32), 0x3F) + ''%''

相關問題