規(guī)范化的SQL數(shù)據(jù)修改語(yǔ)句總結(jié)
更新時(shí)間:2012年11月13日 12:06:28 作者:
本文將提供一些標(biāo)準(zhǔn)的SQL句,可供一些有需求的朋友參考
1 增加字段
IF NOT EXISTS (SELECT * FROM SYSCOLUMNS WHERE ID=OBJECT_ID('QueryDataSource') and name = 'IsCrossTable')
BEGIN
ALTER TABLE QueryDataSource ADD IsCrossTable bit default(0) --插入字段
END
2 存儲(chǔ)過(guò)程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Insert]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Insert]
go
CREATE PROCEDURE dbo.PLSystem_Insert
(
@PLSystemID smallint,
@PLSystemName varchar(20),
@PLSystemFlag char(2)
)
AS
INSERT INTO dbo.PLSystem
(
PLSystemID,
PLSystemName,
PLSystemFlag
)
VALUES
(
@PLSystemID,
@PLSystemName,
@PLSystemFlag
)
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Delete]
go
CREATE PROCEDURE dbo.PLSystem_Delete
(
@PLSystemID smallint
)
AS
DELETE FROM dbo.PLSystem
WHERE
PLSystemID = @PLSystemID
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Update]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Update]
go
CREATE PROCEDURE dbo.PLSystem_Update
(
@PLSystemID smallint,
@PLSystemName varchar(20),
@PLSystemFlag char(2)
)
AS
UPDATE dbo.PLSystem SET
PLSystemName = @PLSystemName,
PLSystemFlag = @PLSystemFlag
WHERE
PLSystemID = @PLSystemID
go
3 創(chuàng)建表
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
DROP TABLE [dbo].[PLSystem]
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[PLSystem](
[PLSystemID] [tinyint] NOT NULL,
[PLSystemName] [varchar](20) NULL,
[PLSystemFlag] [char](2) NULL,
CONSTRAINT [XPKPLSystem] PRIMARY KEY CLUSTERED
(
[PLSystemID] ASC
)
) ON [PRIMARY]
END
GO
4 游標(biāo)
Begin
declare @PluserID varchar(8)
declare pluserCurse Cursor for select PLUserID from PLUser where PCancelJudge=0
open pluserCurse --打開(kāi)游標(biāo)
fetch next from pluserCurse into @PluserID
while @@FETCH_STATUS=0
begin
print (@PluserID)
insert into PLUserActorDepart(DepartID,PLActorSystemID,PLUserID)
select DepartmentID,PLSystemID,PLUserID from MSUserRight where MSUserRight.DepartmentID not in
(
select DepartmentID from PLDepartment where PLDepartment.DParent=(select DepartmentID from PLUser where PLUserID=@PluserID )
OR PLDepartment.DepartmentID=(select DepartmentID from PLUser where PLUserID =@PluserID)
) AND MSUserRight.PLUserID=@PluserID
fetch next from pluserCurse into @PluserID
end
close pluserCurse
deallocate pluserCurse
end
5 用while實(shí)現(xiàn)for循環(huán)
Create Proc InsertSQL
AS
Begin
DECLARE @Count int
set @Count=0;
While(@Count<200000)
Begin
Print(@Count);
Insert into Student values('YOUNG','M',100,'FUJIANXIAMENT');
set @Count=@Count+1;
END
END
復(fù)制代碼 代碼如下:
IF NOT EXISTS (SELECT * FROM SYSCOLUMNS WHERE ID=OBJECT_ID('QueryDataSource') and name = 'IsCrossTable')
BEGIN
ALTER TABLE QueryDataSource ADD IsCrossTable bit default(0) --插入字段
END
2 存儲(chǔ)過(guò)程
復(fù)制代碼 代碼如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Insert]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Insert]
go
CREATE PROCEDURE dbo.PLSystem_Insert
(
@PLSystemID smallint,
@PLSystemName varchar(20),
@PLSystemFlag char(2)
)
AS
INSERT INTO dbo.PLSystem
(
PLSystemID,
PLSystemName,
PLSystemFlag
)
VALUES
(
@PLSystemID,
@PLSystemName,
@PLSystemFlag
)
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Delete]
go
CREATE PROCEDURE dbo.PLSystem_Delete
(
@PLSystemID smallint
)
AS
DELETE FROM dbo.PLSystem
WHERE
PLSystemID = @PLSystemID
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLSystem_Update]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[PLSystem_Update]
go
CREATE PROCEDURE dbo.PLSystem_Update
(
@PLSystemID smallint,
@PLSystemName varchar(20),
@PLSystemFlag char(2)
)
AS
UPDATE dbo.PLSystem SET
PLSystemName = @PLSystemName,
PLSystemFlag = @PLSystemFlag
WHERE
PLSystemID = @PLSystemID
go
3 創(chuàng)建表
復(fù)制代碼 代碼如下:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
DROP TABLE [dbo].[PLSystem]
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PLSystem]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[PLSystem](
[PLSystemID] [tinyint] NOT NULL,
[PLSystemName] [varchar](20) NULL,
[PLSystemFlag] [char](2) NULL,
CONSTRAINT [XPKPLSystem] PRIMARY KEY CLUSTERED
(
[PLSystemID] ASC
)
) ON [PRIMARY]
END
GO
4 游標(biāo)
復(fù)制代碼 代碼如下:
Begin
declare @PluserID varchar(8)
declare pluserCurse Cursor for select PLUserID from PLUser where PCancelJudge=0
open pluserCurse --打開(kāi)游標(biāo)
fetch next from pluserCurse into @PluserID
while @@FETCH_STATUS=0
begin
print (@PluserID)
insert into PLUserActorDepart(DepartID,PLActorSystemID,PLUserID)
select DepartmentID,PLSystemID,PLUserID from MSUserRight where MSUserRight.DepartmentID not in
(
select DepartmentID from PLDepartment where PLDepartment.DParent=(select DepartmentID from PLUser where PLUserID=@PluserID )
OR PLDepartment.DepartmentID=(select DepartmentID from PLUser where PLUserID =@PluserID)
) AND MSUserRight.PLUserID=@PluserID
fetch next from pluserCurse into @PluserID
end
close pluserCurse
deallocate pluserCurse
end
5 用while實(shí)現(xiàn)for循環(huán)
復(fù)制代碼 代碼如下:
Create Proc InsertSQL
AS
Begin
DECLARE @Count int
set @Count=0;
While(@Count<200000)
Begin
Print(@Count);
Insert into Student values('YOUNG','M',100,'FUJIANXIAMENT');
set @Count=@Count+1;
END
END
相關(guān)文章
解決Navicat遠(yuǎn)程連接MySQL出現(xiàn) 10060 unknow error的方法
這篇文章主要介紹了解決Navicat遠(yuǎn)程連接MySQL出現(xiàn) 10060 unknow error的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
MySQL每晚定時(shí)彈出一個(gè)taskeng.exe的解決方法
這篇文章主要介紹了MySQL每晚定時(shí)彈出一個(gè)taskeng.exe的解決方法,需要的朋友可以參考下2018-07-07
MyBatis攔截器實(shí)現(xiàn)分頁(yè)功能的實(shí)現(xiàn)方法
這篇文章主要介紹了MyBatis攔截器實(shí)現(xiàn)分頁(yè)功能的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文大家能夠?qū)崿F(xiàn)這樣的方法,需要的朋友可以參考下2017-10-10
詳解MySQL存儲(chǔ)過(guò)程的創(chuàng)建和調(diào)用
這篇文章主要為大家介紹了MySQL存儲(chǔ)過(guò)程的創(chuàng)建和調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12
MySQL的線(xiàn)程池原理學(xué)習(xí)教程
這篇文章主要介紹了MySQL的線(xiàn)程池原理學(xué)習(xí)教程,包括線(xiàn)程池的函數(shù)調(diào)用與關(guān)鍵接口等重要知識(shí),非常推薦!需要的朋友可以參考下2015-11-11
MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實(shí)例教程
這篇文章主要介紹了MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實(shí)例教程,表連接操作是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12
mysql如何用sql語(yǔ)句建立學(xué)生課程數(shù)據(jù)庫(kù)基本表
這篇文章主要給大家介紹了關(guān)于mysql如何用sql語(yǔ)句建立學(xué)生課程數(shù)據(jù)庫(kù)基本表的相關(guān)資料,學(xué)生表是一個(gè)常見(jiàn)的數(shù)據(jù)表,用于存儲(chǔ)學(xué)生的個(gè)人信息和成績(jī)等相關(guān)數(shù)據(jù),文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

