DECLARE @NAME SYSNAME --表名变量 DECLARE CSR CURSOR --定义一个游标 FOR SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U ' --在系统表SYSOBJECTS 中取[XTYPE = 'U '] ,即取用户表的表名 OPEN CSR DECLARE @SCHEMATABLE VARCHAR (200) --定义一个字符串存放执行语句 FETCH NEXT FROM CSR INTO @NAME --将游标向下移1行,获取的数据放入之前定义的变量@NAME中 WHILE (@@FETCH_STATUS=0) --判断是否成功获取数据 BEGIN --语句中的'HS.'是需要修改的架构名,'DBO'是目标架构名,可以修改 SET @NAME = 'bbs.' + @NAME PRINT 'ALTER SCHEMA DBO TRANSFER ' + @NAME --输出执行语句内容 SET @SCHEMATABLE = 'ALTER SCHEMA DBO TRANSFER ' + @NAME --生成动态执行语句 EXEC (@SCHEMATABLE) --开始执行 FETCH NEXT FROM CSR INTO @NAME --将游标向下移1行 END CLOSE CSR --关闭游标 DEALLOCATE CSR --删除游标引用,释放了游标占用的内存空间
标签:语句,NAME,DBO,--,游标,修改,MSSQL,CSR From: https://www.cnblogs.com/ucdos/p/17872491.html