摘自: http://www.cnblogs.com/yashen/archive/2004/12/23/81000.html 我们在使用SqlServer时经常遇到这种情况,当修改某个表的结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程. CREATE PROCEDURE RefreshAllView AS DECLARE MyCursor CURSOR and (not name in ('sysconstraints','syssegments')) ) OPEN My
sqlserver 用于刷新当前数据库所有视图的存储过程 create procedure dbo.proc_refreshview as begin ) declare cur_view cursor for select [name] from sysobjects where [type]='V' open cur_view fetch next from cur_view into @viewname ) begin exec sp_refreshview @viewname fetch
在视图中查询数据的时候,会不会使用实体表中的列上的索引呢?会 .... 测试结果 测试脚本 ; BEGIN INSERT INTO Teachers ( TeacherName, Sex, MoneyPay ) VALUES ( CAST(@len AS NVARCHAR), -- TeacherName - nvarchar(50) NULL, -- Sex - bit -- MoneyPay - decimal ) ; END go ; BEGIN INSERT INTO Students
修改视图注意事项 修改先前创建的视图. 其中包括索引视图. ALTER VIEW不影响相关的存储过程或触发器,并且不会更改权限. 如果原来的视图定义是使用 WITH ENCRYPTION 或 CHECK OPTION创建的,则只有在 ALTER VIEW 中也包含这些选项时,才会启用这些选项. 如果当前所用的视图使用 ALTER VIEW 来修改,则数据库引擎使用对该视图的排他架构锁. 在授予锁时,如果该视图没有活动用户,则数据库引擎将从过程缓存中删除该视图的所有副本. 引用该视图的现有计划将继
use tax_ceshiselect 'DROP TABLE '+name from sysobjects where type = 'U'union select 'DROP VIEW '+name from sysobjects where type = 'V' unionselect 'DROP PROC '+name from sysobjects where type = 'P' unionselect 'drop function '+name from sysobjects wh
ALTER PROCEDURE sp_refallview AS --刷新所有视图 DECLARE @ViewName VARCHAR(MAX); DECLARE @i INT; ; DECLARE #_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type = 'V'; OPEN #_cursor; FETCH NEXT FROM #_cursor INTO @ViewName; BEGIN PRINT '成功刷新视图: ' + @Vi
摘要: 今天对物理数据表,进行增加列操作后,程序一直显示无法找到相应列,通过仔细比对发现,视图中无相应列更新,下文将具体的解决方法分享如下: 例: create view vw_test as select * from tableName go ---当我们在表tableName中新增列之,再次查询vw_test ---依然未发现相应列的存在. ----解决方法1:删除原视图,重新创建视图 drop view vw_test go create view vw_test as select *