我正在尝试通过从DOMDB获取列表来从APPDB中删除临时表名。 我无法找到或弄清楚SQL中的语法应该如何。
这是两种代码的组合,它们分别起作用,但我想把两者结合起来进行迭代。
USE DOMDB
Declare @OPR_CODE char( 11 )
SET rowcount 0
SELECT OPR_CODE into #TEMPOPR from DOMN_OPR
SET rowcount 1
SELECT @OPR_CODE = OPR_CODE from #TEMPOPR
USE APPDB
DECLARE @OPRCODE NVARCHAR(MAX) = N'';
SELECT @OPRCODE += '
DROP TABLE '
+ QUOTENAME(OBJECT_SCHEMA_NAME([object_id]))
+ '.' + QUOTENAME(name) + ';'
FROM sys.tables
WHERE name LIKE '% + OPR_CODE + 001%';
--something like if OPR_CODE='USER' it will be (WHERE name LIKE '%USER001%';
EXEC sp_executesql @OPRCODE;
while @@rowcount <> 0
begin
set rowcount 0
select * from #TEMPOPR where OPR_CODE = @OPR_CODE
delete #TEMPOPR where OPR_CODE = @OPR_CODE
set rowcount 1
select @OPR_CODE = OPR_CODE from #TEMPOPR
end
set rowcount 0
DROP table #TEMPOPR
答案 0 :(得分:1)
您需要使用正确的连接:
WHERE name LIKE '%' + @OPR_CODE + '001%'
答案 1 :(得分:0)
LIKE '% +&'+@OPR_CODE+'&+001%';