誤區 #4: DDL觸發器(SQL Server 2005之後被引入)就是INSTEAD OF觸發器這是錯誤的 DDL觸發器的實現原理其實就是一個AFTER觸發器。這個意思是先發生DDL操作,然後觸發器再捕捉操作(當然如果你在觸發器內寫了Rollback,則也可能復原)。 存在Rollback也意味著這個觸發器並不像你想象的那麼輕量,來看下面的例子: ALTER TABLE
誤區 #2: DBCC CHECKDB會引起阻塞,因為這個命令預設會加鎖這是錯誤的! 在SQL Server 7.0以及之前的版本中,DBCC CHECKDB命令的本質是C語言實現的一個不斷嵌套迴圈的代碼並對錶加表鎖(迴圈嵌套演算法時間複雜度是嵌套次數的N次方,作為程式員的你懂得),這種方式並不和諧,並且….. 在SQL Server 2000時代,一個叫Steve Lindell的哥們(現在仍然在SQL Server
複製代碼 代碼如下: CREATE function getcolor (@井號 varchar(50),@層位 varchar(50)) returns varchar(200) as begin declare @sql varchar(2000);set @sql='' --distinct select @sql=@sql+ 顏色+',' from ( select distinct 顏色 from yourtablename where 井號=@井號 and 層位=@層位 and
--查看指定表的外鍵約束 select * from sysobjects where parent_obj in( select id from sysobjects where name='表名') and xtype='PK' --查看所有表 select * from sysobjects where xtype='PK' --刪除列中含數位 delete news where patindex('%[0-9]%',title)>0 --刪除刪去 欄位
第一種是最傳統的寫法,用預存程序中的變數作為分頁的乘數 複製代碼 代碼如下: [c-sharp] view plaincopyprint?create proc p_paged1 @pageSize int,@currentPage int as select top (@pageSize) * from student where id not in (select top (@pageSize*(@currentPage-1)) id from student) go exec
sql語句中預設是不區分大小寫,所以語句: Sql代碼 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'QQ' 和 Sql代碼 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'qq' 查到的結果是一樣的。 要查看某個欄位是否包含大寫字母 A 的指令碼為: Sql代碼 select * from RecEngineBizInfo where