我正在尝试使用 Microsoft SQL Server Management Studio 2018 更改 Microsoft SQL Server 2017 标准版中的一系列表名。
我一直在传输的代码基于以下代码:
use DatabaseX
declare @RunRW varchar(MAX)
declare @ArVC varchar(4)
declare @StartAr smallint
declare @SlutAr smallint
declare @Ar smallint
set @StartAr = 2000
set @SlutAr = 2018
set @Ar = @StartAr
while @Ar <= @SlutAr
begin
set @ArVC = cast(@Ar as varchar)
set @RunRW = '
exec sp_rename ''TMP_Table_Name_' + @ArVC + ',''Table_Name_' + @ArVC + ''
exec (@RunRW)
set @Ar = @Ar + 1
end
我在exec sp_rename
语法中尝试了不同数量的引号。看来我可以通过改变这些来绕过失败。上面的示例代码提供以下错误消息:
消息 102,级别 15,状态 1,第 2 行
“TMP_Table_Name_2000”附近的语法不正确。
我也试过用四个引号而不是两个。
另一种尝试是在没有@RunRW
变量的情况下动态运行存储过程。那也没有用。
我做错了什么/遗漏了什么,或者无法sp_rename
使用动态代码运行?