⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 创建db和lm01表.sql

📁 该系统是留言版系统
💻 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 + -