下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
--视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FOR SELECT NAME FROM DBO.SYSOBJECTS WHERE NAME NOT IN ('SYSCONSTRAINTS','SYSSEGMENTS') AND ( OBJECTPROPERTY(ID,N'IsView') = 1 --视图 OR OBJECTPROPERTY(ID,N'IsProcedure') = 1 --存储过程 OR OBJECTPROPERTY(ID,N'IsScalarFunction') = 1 --标量函数 OR OBJECTPROPERTY(ID,N'IsTableFunction') = 1 --标题函数 OR OBJECTPROPERTY(ID,N'IsInlineFunction') = 1 --内联函数 ); OPEN @CUR; FETCH NEXT FROM @CUR INTO @NAME WHILE (@@FETCH_STATUS=0) BEGIN DECLARE @OldText NVARCHAR(MAX); DECLARE @NewText NVARCHAR(MAX); --读取创建脚本,当脚本超长时分成多条记录时合并 SELECT @[email protected] + CHAR(10) + CHAR(13) + RTRIM(TEXT) FROM SYSCOMMENTS WHERE ID = OBJECT_ID(@NAME); --将创建脚本替换为更新脚本 SET @NewText=REPLACE(@OldText,N'CREATE VIEW',N'ALTER VIEW'); SET @NewText=REPLACE(@NewText,N'CREATE PROCEDURE',N'ALTER PROCEDURE'); SET @NewText=REPLACE(@NewText,N'CREATE FUNCTION',N'ALTER FUNCTION'); BEGIN TRY EXEC(@NewText); END TRY BEGIN CATCH PRINT N'---------------------------------------------------------------------------'; PRINT @NAME + N' : ' + ERROR_MESSAGE(); --PRINT @OldText; PRINT N'---------------------------------------------------------------------------'; END CATCH FETCH NEXT FROM @CUR INTO @NAME END CLOSE @CUR; DEALLOCATE @CUR;
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。