sqlserver2008 常用方法

<!--defaultCSS-->

1、使用遊標循環更改特定數據表的值
DECLARE tnames_cursor CURSOR 
FOR 
SELECT parentId 
FROM jhtdb.dbo.SC_TABLELIST 
OPEN tnames_cursor 
DECLARE @tablename int
FETCH NEXT FROM tnames_cursor INTO @tablename 
WHILE (@@FETCH_STATUS <> -1) 
BEGIN 
IF (@@FETCH_STATUS <> -2) 
BEGIN     
declare @id int
set @id = jhtdb.dbo.getIdByName(@tablename)
--print  @tablename
if(@id <> 0)
begin
update SC_TABLELIST set parentId=@id where parentId=@tablename
end
END 
FETCH NEXT FROM tnames_cursor INTO @tablename 
END 
CLOSE tnames_cursor 
DEALLOCATE tnames_cursor 
 2、強制類型轉換
CAST(@tablename as int)  其中@tablename爲需要被轉換的值
 3、去除熱備份數據庫的只讀/備用狀態
use master
go
RESTORE DATABASE JHTDBTMP
WITH RECOVERY 
其中JHTDBTMP爲數據庫的名稱
4、查看數據庫的佔用情況
 
sp_who            -- 查看所有用戶連接
sp_who 'active'        -- 查看活動用戶連接
sp_who 'sa'        -- 查看用戶sa連接 
 
5、查看特定數據庫的連接情況
SELECT * FROM 
[Master].[dbo].[SYSPROCESSES] WHERE [DBID] 
IN 
(
  SELECT 
   [DBID]
  FROM 
   [Master].[dbo].[SYSDATABASES] 
  WHERE 
   NAME='數據庫名稱'
) 
 6、強制關閉數據庫連接
USE master
go 
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    DROP PROCEDURE [dbo].[p_killspid]
go
create   proc   p_killspid 
@dbname   varchar(200) --要關閉進程的數據庫名
as     
declare   @programName     nvarchar(200), 
@spid   nvarchar(20) 
declare   cDblogin   cursor   for 
select   cast(spid   as   varchar(20))  AS spid   from   master..sysprocesses   where   dbid=db_id(@dbname) 
open   cDblogin
fetch   next   from   cDblogin   into   @spid 
while   @@fetch_status=0 
begin    
--防止自己終止自己的進程 
--否則會報錯不能用KILL 來終止您自己的進程。  
IF    @spid <> @@SPID
    exec( 'kill   '+@spid) 
fetch   next   from  cDblogin   into   @spid 
end     
close   cDblogin 
deallocate   cDblogin
go 
調用方法:exec   p_killspid     'jhtdb' 
 7、MSSQL中常用的全局變量解析
@@FETCH_STATUS  返回語句的狀態

0	FETCH statement was successful.
-1	FETCH statement failed or the row was beyond the result set.
-2	Row fetched is missing.

@@ROWCOUNT      返回上一語句影響的行數
@@SPID                返回當前用戶進程回話的id
@@TRANCOUNT      返回當前連接中包含的事物數量
@@ERROR              返回上一語句執行時出錯的數量

 
發佈了19 篇原創文章 · 獲贊 1 · 訪問量 2572
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章