1.创建数据库与数据表
创建数据库
– 创建数据库
IF DB_ID(‘数据库名称’) IS NULL
CREATE DATABASE 数据库名称
GO
– 创建表
USE LGDB_CLZB6
GO
– 1 创建表1
IF NOT EXISTS(SELECT * FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(‘你的表名称1’) AND type IN (N’U’))
CREATE TABLE Board
( --字段
ID INT IDENTITY(1, 1) PRIMARY KEY,
RoomID INT NOT NULL,
SchoolID VARCHAR(50) NOT NULL,
ClassID VARCHAR(50),
)
GO
– 2 创建表2
IF NOT EXISTS(SELECT * FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(‘你的表名称2’) AND type IN (N’U’))
CREATE TABLE Board
( --字段
ID INT IDENTITY(1, 1) PRIMARY KEY,
RoomID INT NOT NULL,
SchoolID VARCHAR(50) NOT NULL,
ClassID VARCHAR(50),
)
GO
2.对一个表的存储过程创建
1.如何调试
去sql server management studio 中在数据库的可编程性的存储过程中创建一个存储过程调试文件
2.使用CREATE PROCEDURE创建存储过程
CREATE PROCEDURE 创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
模板:
if (exists (select * from sys.objects where name = 'pro_name'))
drop proc pro_name
go
create proc pro_name
@param_name param_type [=default_value]
as
begin
sql语句
end
3.存储过程例子
查询一条数据:
declare @p_text varchar(max)
IF EXISTS(SELECT * FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID('ecb_proc_TABLE_NAME__get_getAll') AND type IN (N'P'))
DROP PROCEDURE ecb_proc_TABLE_NAME__get_getAll
GO
CREATE PROCEDURE ecb_proc_TABLE_NAME__get_getAll
AS
SELECT ID, DeviceType,DeviceName
FROM dbo.TABLE_NAME
GO
这里的TABLE_NAME是你要查询的数据表名称,__get表示获取数据
调用时代码如下:
protected SqlDB db;
public List<Device> GetAll()
{
DataTable dt = db.FromProcedure("ecb_proc_TABLE_NAME__get_getAll").Query();
if (dt.Rows.Count < 0)
return null;
else
return Get(dt);
}
protected override Device Get(DataRow row)
{
return new Device
{
ID = row.Value<int>(0),
DeviceType = row.Value<int>(1),
DeviceName = row.Value<String>(2),
};
}
protected List<T> Get(DataTable dt)
{
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
list.Add(Get(row));
return list;
}
更新一条数据:
IF EXISTS(SELECT * FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID('ecb_proc_Device_Setting__update_device') AND type IN (N'P'))
DROP PROCEDURE ecb_proc_Device_Setting__update_device
GO
CREATE PROCEDURE ecb_proc_Device_Setting__update_device
(
@ID int,
@LessonSignInEnable BIT,
@DeviceOperate int,
@OperateSecCode VARCHAR(30),
@Extra int
)
AS
UPDATE dbo.Device_Setting
SET LessonSignInEnable=@LessonSignInEnable,DeviceOperate=@DeviceOperate,OperateSecCode=@OperateSecCode,Extra=@Extra
WHERE ID=@ID
GO
插入一条数据:
IF EXISTS(SELECT * FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID('ecb_proc_face_use__add_courseItem') AND type IN (N'P'))
DROP PROCEDURE ecb_proc_face_use__add_courseItem
GO
CREATE PROCEDURE ecb_proc_face_use__add_courseItem
(
@StartTime TIME(0),
@EndTime TIME(0),
@FaceTime TIME(0)
)
AS
INSERT INTO face_use (StartTime, EndTime,FaceTime)
VALUES
( @StartTime, @EndTime,@FaceTime)
END
GO
没有就插入一条数据,否则就更新:
-- add courseItem
IF EXISTS(SELECT * FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID('ecb_proc_face_use__add_courseItem') AND type IN (N'P'))
DROP PROCEDURE ecb_proc_face_use__add_courseItem
GO
CREATE PROCEDURE ecb_proc_face_use__add_courseItem
(
@CourseID NVARCHAR(255),
@ClassroomID NVARCHAR(255),
@StartTime TIME(0),
@EndTime TIME(0),
@FaceTime TIME(0)
)
AS
IF EXISTS(SELECT * FROM face_use WHERE CourseID = @CourseID And ClassroomID=@ClassroomID)
BEGIN
UPDATE face_use SET StartTime=@StartTime, EndTime=@EndTime ,FaceTime=@FaceTime WHERE Id = @id
END
ELSE
BEGIN
INSERT INTO face_use (CourseID, ClassroomID, StartTime, EndTime,FaceTime)
VALUES
(@CourseID,@ClassroomID, @StartTime, @EndTime,@FaceTime)
END
GO
查询数据:
-- [announce room] UPDATE by course id
IF EXISTS(SELECT * FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID('ecb_proc_Face_Use__get_by_c') AND type IN (N'P'))
DROP PROCEDURE ecb_proc_Face_Use__update_by_c
GO
CREATE PROCEDURE ecb_proc_Face_Use__update_by_c
(
@AddDay INT
)
AS
SELECT AddDay,FaceTime FROM dbo.Face_Use
WHERE AddDay = @AddDay
GO
调试存储过程:
1.找到你要调试的存储过程

右击选择执行存储过程,出来下面,输入参数点击确定即可:

本文详细介绍了在SQL Server中创建数据库、数据表的方法,以及如何通过存储过程进行数据查询、更新和插入操作。提供了丰富的SQL语句示例,包括调试存储过程的步骤。

1万+

被折叠的 条评论
为什么被折叠?



