使用循环更改SQL Server数据库中表的模式

时间:2013-01-10 19:36:40

标签: sql-server tsql

我有一个关于使用循环来更改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

2 个答案:

答案 0 :(得分:1)

tsql中的字符串连接是+,而不是||

答案 1 :(得分:1)

使用PRINT代替dbms_output.put_line+代替||

SET @mQuery = 'ALTER SCHEMA schema1 TRANSFER schema99.'  + @Name  +  ';' ;

PRINT @mQuery;