我有一个关于使用循环来更改SQL Server数据库中表的架构的问题。
此代码由于错误而失败,我无法弄清楚它有什么问题。
错误是:
错误:“|”附近的语法不正确。
以下是T-SQL代码:
SELECT DISTINCT TABLE_NAME
Into #Temp
FROM INFORMATION_SCHEMA.TABLES
Declare @Name varchar2
Declare @mQuery varchar2
While (Select Count(*) From #Temp) > 0
Begin
Select Top 1 @Name = Name From #Temp;
SET @mQuery = 'ALTER SCHEMA schema1 TRANSFER schema99.' || @Name || ';' ;
dbms_output.put_line( @mQuery );
--sp_executesql @mQuery;
Delete #Temp Where Name = @Name;
End
答案 0 :(得分:1)
tsql中的字符串连接是+
,而不是||
。
答案 1 :(得分:1)
使用PRINT
代替dbms_output.put_line
,+
代替||
:
SET @mQuery = 'ALTER SCHEMA schema1 TRANSFER schema99.' + @Name + ';' ;
PRINT @mQuery;