?? 創建db和lm01表.sql
字號:
--創建“留言板”數據庫
create database [LeaveMessage];
go
use [LeaveMessage];
go
--------------------------END------------------------------
--創建LM01表(留言信息表)
create table [LM01](
[ID] varchar(18) primary key,
[User] varchar(18) not null,
[QQMSN] varchar(18) not null,
[Title] varchar(50),
[Contents] text not null,
[WriteBack] text,
[SubmitTime] datetime not null,
[Comment] varchar(100) --【未用】刪除留言的注釋(選取Contents的前幾個字符即可)
);
go
--------------------------END------------------------------
/* --- 范例 ---
--創建臨時表 tempTable(在此用于保存一次性要刪除的多條留言的相關ID)
create table #tempTable(
[ID] varchar(18)
);
--刪除臨時表
drop table #tempTable;*/
--------------------------END------------------------------
--創建Delete觸發器(另外用一個表保存被刪除了的留言信息,預防需要恢復某些留言信息)
create trigger [delLM] on [LM01]
after delete
as
begin
set nocount on; --不返回受影響的行計數
declare @d_deleteTime datetime
set @d_deleteTime = getdate();
begin transaction --開始事務
insert into [BeenDeletedLM]
select [ID],[User],[QQMSN],[Title],[SubmitTime],@d_deleteTime,[Comment]
from deleted;
if @@error <> 0
begin
raiserror('Error, transaction not completed!', 16, -1)
rollback transaction --出現錯誤,回滾
end
commit transaction --事務結束
end
--創建暫存表 BeenDeletedLM
create table [BeenDeletedLM](
[ID] varchar(18),
[User] varchar(18),
[QQMSN] varchar(18),
[Title] varchar(50),
[SubmitTime] datetime,
[DeleteTime] datetime, --留言被刪除的時間
[Comment] varchar(100)
);
--------------------------END------------------------------
--創建 存儲過程 ——用于創建用戶指定名稱的表
create proc CreateTable
@table_name varchar(18)
as
if(@table_name = '')
begin
raiserror('table_name cannot be empty',10,1)
return -1
end
IF not EXISTS (SELECT name FROM [sysobjects]
WHERE name = @table_name AND type = 'U')
begin
declare @createtable varchar(200)
set @createtable='create table '+ @table_name+ ' (
[Title] varchar(50),
[Contents] text not null,
[WriteBack] text,
[SubmitTime] datetime not null)'
exec(@createtable)
end
ELSE
begin
declare @error varchar(100)
set @error = 'Have exist table ' + @table_name
raiserror(@error,10,1)
return -1
end
go
--------------------------create proc END------------------------------
--利用存儲過程創建 a 表示例
exec CreateTable 'a'
--------------------------END------------------------------
--刪除存儲過程 CreateTable
drop proc CreateTable
--------------------------END------------------------------
--查詢表
select * from LM01
select * from BeenDeletedLM
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -