刪除數據庫中重復數據的幾個方法
數據庫的使用過程中由於程序方面的問題有時候會碰到重復數據
方法一
declare @max integer
declare cur_rows cursor local for select 主字段
open cur_rows
fetch cur_rows into @id
while @@fetch_status=
begin
select @max = @max
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id
end
close cur_rows
set rowcount
方法二
有兩個意義上的重復記錄
select distinct * from tableName
就可以得到無重復記錄的結果集
如果該表需要刪除重復的記錄(重復記錄保留
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重復的原因是表設計不周產生的
假設有重復的字段為Name
select identity(int
select min(autoID) as autoID into #Tmp
select * from #Tmp where autoID in(select autoID from #tmp
最後一個select即得到了Name
更改數據庫中表的所屬用戶的兩個方法
大家可能會經常碰到一個數據庫備份還原到另外一台機器結果導致所有的表都不能打開了
exec sp_changeobjectowner
CREATE PROCEDURE dbo
@OldOwner as NVARCHAR(
@NewOwner as NVARCHAR(
AS
DECLARE @Name as NVARCHAR(
DECLARE @Owner as NVARCHAR(
DECLARE @OwnerName as NVARCHAR(
DECLARE curObject CURSOR FOR
select
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name
WHILE(@@FETCH_STATUS=
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner +
exec sp_changeobjectowner @OwnerName
end
FETCH NEXT FROM curObject INTO @Name
END
close curObject
deallocate curObject
GO
SQL SERVER中直接循環寫入數據
沒什麼好說的了
declare @i int
set @i=
while @i<
begin
insert into test (userid) values(@i)
set @i=@i+
end
無數據庫日志文件恢復數據庫方法兩則
數據庫日志文件的誤刪或別的原因引起數據庫日志的損壞
方法一
數據庫的腳本創建一個新的數據庫
USE MASTER
GO
SP_CONFIGURE
GO
UPDATE SYSDATABASES SET STATUS =
Go
sp_dboption
Go
DBCC CHECKDB(
Go
update sysdatabases set status =
Go
sp_configure
Go
sp_dboption
方法二
事情的起因
昨天
這下子壞了!這個數據庫連不上了
沒有效果的恢復步驟
附加數據庫
_Rambo講過被刪除日志文件中不存在活動日志時
但是
DTS數據導出
不行
緊急模式
怡紅公子講過沒有日志用於恢復時
我實踐了一下
但是
不過
最終成功恢復的全部步驟
設置數據庫為緊急模式
停掉SQL Server服務
把應用數據庫的數據文件XXX_Data
重新建立一個同名的數據庫XXX
停掉SQL服務
把原來的數據文件再覆蓋回來
運行以下語句
運行
Go
sp_configure
reconfigure with override
Go
執行結果
DBCC 執行完畢
已將配置選項
接著運行
執行結果
(所影響的行數為
重啟SQL Server服務
運行以下語句
運行
執行結果
命令已成功完成
ü 做DBCC CHECKDB
運行
執行結果
對象
對象
………
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22060.html