case语句insql [英] case statement insql
问题描述
声明 @ AuditDBName Varchar ( 50 ), @ sQuery Varchar (最大)
< big> 选择 @ AuditDBName = ConfigStringValue FROM [dbo ]。[Common_SystemConfig] WHERE ConfigKey = ' CMS_AUDIT_DB'
- 这是我的数据库名称 -- This is my db name 这篇关于case语句insql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
< pre lang =sql> CASE WHEN EXISTS ( SELECT 1 FROM #TempClosedWorkItemReportTagIDForOMMAEvictionWB WHERE CaseNumber = CC.CaseNumber AND ReportTagID IN ( 160 ))
那么
选择 @sQuery = ' SELECT SUBSTRING((SELECT'',''+ s.CaseStatus FROM' + @ AuditDBName + ' 。[dbo]。[Audit_Common_Case]其中CaseNumber = CC.CaseNumber FOR XML PATH('''')),2,200000)' AS [CaseStatusToolTip]
END
我想通过我的下面的查询中的数据库名称你不能这样做:在SQL命令处理的早期阶段解析dB名称,它赢得了' t接受一个变量作为dB名称。
你可以这样做,但你需要组装一个字符串版本,然后用EXEC代替执行字符串。
Declare @AuditDBName Varchar(50),@sQuery Varchar(Max)
<big> Select @AuditDBName = ConfigStringValue FROM [dbo].[Common_SystemConfig] WHERE ConfigKey= 'CMS_AUDIT_DB'
CASE WHEN EXISTS (SELECT 1 FROM #TempClosedWorkItemReportTagIDForOMMAEvictionWB WHERE CaseNumber = CC.CaseNumber AND ReportTagID IN (160))
THEN
Select @sQuery='SELECT SUBSTRING((SELECT '','' + s.CaseStatus FROM '+@AuditDBName+'.[dbo].[Audit_Common_Case] s where CaseNumber=CC.CaseNumber FOR XML PATH('''')),2,200000)' AS [CaseStatusToolTip]
END
I want to pass my db name in the below queryYou can't do it like that: the dB name is parsed at an earlier stage of SQL command processing, and it won't accept a variable as a dB name.
You can do it, but you need to assemble a string version and then use EXEC instead to execute the string.