Sql server SQL Server添加变量

Sql server SQL Server添加变量,sql-server,tsql,Sql Server,Tsql,如何在SQL Server中添加一个变量来替换%MV\u.json%,以便只需在一个位置对所有这些表进行更改 delete from [addresses] where [uniqueFilename] like '%MV_AUG2019.json%' delete from [disabilities] where [uniqueFilename] like '%MV_AUG2019.json%' delete from [MD] where [uniqueFilename] like '%M

如何在SQL Server中添加一个变量来替换
%MV\u.json%
,以便只需在一个位置对所有这些表进行更改

delete from [addresses] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [disabilities] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [MD] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [messages] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [MH] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [MV] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [permits] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [PP] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [registrationOwners] where [uniqueFilename] like '%MV_AUG2019.json%'
delete from [stops] where [uniqueFilename] like '%MV_AUG2019.json%'

我打赌你只是想-->


您必须在以下内容中声明一个变量:

DECLARE @var NVARCHAR(1000) = 'name.json' -- provide file name here

delete from [addresses] where [uniqueFilename] like '%' + @var + '%'

您可以在动态模式中生成表

DECLARE @FileName NVARCHAR(500) = 'MV_AUG2019.json'

SELECT 'DELETE FROM '+QUOTENAME(TABLE_NAME) +' WHERE '+ QUOTENAME(COLUMN_NAME)+ ' LIKE '+'''%'+ @FileName+'%'''
FROM  INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME ='uniqueFilename' AND DATA_TYPE IN ('char','nvarchar','varchar')

通过将通配符(
“%”
)连接到已包含通配符的变量,将通配符加倍的目的是什么!,op提到了文件名,我认为这是文件名的一部分,已更新。提示:将对象名称组合到动态SQL语句中的最佳实践是避免出现奇数名称问题,例如带有空格的
新表
或保留字,如
From
DECLARE @FileName NVARCHAR(500) = 'MV_AUG2019.json'

SELECT 'DELETE FROM '+QUOTENAME(TABLE_NAME) +' WHERE '+ QUOTENAME(COLUMN_NAME)+ ' LIKE '+'''%'+ @FileName+'%'''
FROM  INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME ='uniqueFilename' AND DATA_TYPE IN ('char','nvarchar','varchar')