मैं मान रहा हूं कि आप डेटाबेस नाम को एक पैरामीटर के रूप में पारित करना चाहते हैं, न कि केवल चलाने के लिए:
SELECT *
FROM DBName.sys.tables
WHERE Name LIKE '%XXX%'
यदि ऐसा है, तो आप क्वेरी में dbname जोड़ने के लिए गतिशील SQL का उपयोग कर सकते हैं:
DECLARE @DBName NVARCHAR(200) = 'YourDBName',
@TableName NVARCHAR(200) = 'SomeString';
IF NOT EXISTS (SELECT 1 FROM master.sys.databases WHERE Name = @DBName)
BEGIN
PRINT 'DATABASE NOT FOUND';
RETURN;
END;
DECLARE @SQL NVARCHAR(MAX) = ' SELECT Name
FROM ' + QUOTENAME(@DBName) + '.sys.tables
WHERE Name LIKE ''%'' + @Table + ''%''';
EXECUTE SP_EXECUTESQL @SQL, N'@Table NVARCHAR(200)', @TableName;