新昌县城乡建设局网站,新网站建设的感想,网站源码html,wordpress自定义面板为提高开发效率#xff0c;生成固定格式的接口是必须的#xff0c;以下以提供新增/修改/删除/读取接口为例#xff1a; 以常见的表结构为例#xff0c;特殊表结构可自己尝试去调整方法 主要通过系视图 sys.columns生成方法:为包含列的对象#xff08;如视图或表#xff0…为提高开发效率生成固定格式的接口是必须的以下以提供新增/修改/删除/读取接口为例 以常见的表结构为例特殊表结构可自己尝试去调整方法 主要通过系视图 sys.columns生成方法:为包含列的对象如视图或表的每列返回一行。下面是包含列的对象类型的列表。 列名 数据类型 说明 object_id int 此列所属对象的 ID。 name sysname 列名。在对象中是唯一的。 column_id int 列的 ID。在对象中是唯一的。 列 ID 可以不按顺序排列。 system_type_id tinyint 列的系统类型的 ID。 user_type_id int 用户定义的列类型的 ID。 若要返回该类型的名称请在该列中联接到 sys.types 目录视图。 max_length smallint 列的最大长度字节。 -1 列数据类型为 varchar(max)、nvarchar(max)、varbinary(max) 或 xml。 对于 text 列max_length 值将是 16或者是 sp_tableoption text in row 所设置的值。 precision tinyint 如果列包含的是数值则为该列的精度否则为 0。 scale tinyint 如果基于数值则为列的小数位数否则为 0。 is_rowguidcol bit 1 列为声明的 ROWGUIDCOL。 is_identity bit 1 列具有标识值 1、在Test数据库生成方法 if OBJECT_ID(Curdsqlstring,P) is not nullDROP PROC Curdsqlstring
go
CREATE PROCEDURE Curdsqlstring(TableName sysname)
with encryption
AS
if OBJECT_ID(TableName,U) is nullreturn 0DECLARE S NVARCHAR(MAX),ColName NVARCHAR(MAX),Identity sysname,IdentityWHERE NVARCHAR(100),Insert0 NVARCHAR(MAX),Insert1 NVARCHAR(MAX),Insert2 NVARCHAR(MAX),Insert3 NVARCHAR(MAX) ,UPDATE0 NVARCHAR(MAX) ,UPDATE1 NVARCHAR(MAX),UPDATE2 NVARCHAR(MAX),UPDATE3 NVARCHAR(MAX),SELECTWHERE0 NVARCHAR(MAX),SELECTWHERE1 NVARCHAR(MAX),SELECT0 NVARCHAR(MAX),SELECT1 NVARCHAR(MAX),DELETE NVARCHAR(MAX),ColName2 NVARCHAR(MAX),ObjectID INT,UPDATECol1 NVARCHAR(MAX),ColAll NVARCHAR(MAX),InputCol sysname,Write NVARCHAR(100),OutputAll NVARCHAR(1000),TableName2 sysname
SELECT WriteRoychar(32)char(32)char(32)convert(varchar(10),getdate(),120),Insert2,Insert3SELECT SCASE WHEN a.is_computed1 THEN S ELSE ISNULL(s,,)Namechar(32) TYPE_NAME(user_type_id)CASE when user_type_id in(34,35,36,48,52,56,58,59,60,61,62,98,99,104,122,127,189,241,256,241,40,41,129) then when user_type_id in(106,108) then (rtrim(Precision),rtrim(Scale))when user_type_id in (231,239) then CASE when max_length-1 then (max) else (rtrim(max_length/2)) endwhen max_length-1 then (Max)else (rtrim(max_length)) endCASE when is_identity1 then char(32)OUTPUT else end END,ColNameCASE when is_identity1 OR a.is_computed1 THEN ColName else isnull(ColName,,)quotename(Name) end,ColName2CASE when is_identity1 OR a.is_computed1 then ColName2 else isnull(ColName2,,)Name end,UPDATECol1CASE when Name!NID AND NOT EXISTS ( SELECT 1FROM sys.objects xJOIN sys.indexes y ON x.type NPKAND x.name y.nameJOIN sysindexkeys z ON z.id x.object_idAND z.indid y.index_idAND z.colid a.Column_id AND x.object_ida.object_id) AND a.is_computed0 THEN ISNULL(UPDATECol1,,)QUOTENAME(Name)Name ELSE UPDATECol1 END,IdentityWHEREisnull(IdentityWHERE,)CASE when COLUMNPROPERTY (OBJECT_ID, Name , IsIdentity )1 OR NameNID then quotename(Name)Name ELSE end,ColAllisnull(ColAll,,)quotename(Name),OutputAllisnull(OutputAll,,)Name
from Sys.columns AS a
WHERE a.OBJECT_IDOBJECT_ID(TableName)
order by CASE when NameID then 0 else 1 end,Column_idIF IdentityWHERE SELECT IdentityWHERE IdentityWHERECASE WHEN IdentityWHERE AND EXISTS ( SELECT 1FROM sys.objects xJOIN sys.indexes y ON x.type NPKAND x.name y.nameJOIN sysindexkeys z ON z.id a.object_idAND z.indid y.index_idAND z.colid a.Column_id ) THEN AND ELSE END CASE WHEN EXISTS ( SELECT 1FROM sys.objects xJOIN sys.indexes y ON x.type NPKAND x.name y.nameJOIN sysindexkeys z ON z.id a.object_idAND z.indid y.index_idAND z.colid a.Column_id )THEN QUOTENAME(name) nameELSE ENDFROM sys.columns AS aWHERE object_id OBJECT_ID(TableName)ORDER BY column_idIF IdentityWHERESELECT TOP 1 IdentityWHEREquotename(Name)Name FROM sys.columns WHERE OBJECT_IDOBJECT_ID(TableName) ORDER BY column_id
--主键为第一列
SELECT Identityreplace(left(s,charindex(,,s)-1),char(32)output,),ObjectIDOBJECT_ID(TableName),TableNamereplace(replace(stuff(TableName,1,charindex(.,TableName),),],),[,),TableName2CASE WHEN TableName NOT LIKE %.% THEN OBJECT_SCHEMA_NAME(ObjectID).TableName ELSE TableName ENDSELECT Insert1CREATE PROCEDURE cTableNamechar(10)char(9)char(9)(s)char(10)AS,Insert2INSERT INTO TableName2char(10)char(9)(ColName),Insert3VALUESchar(10)char(9)(ColName2)CASE when exists(SELECT 1 from Sys.columns WHERE OBJECT_IDObjectID and is_identity1) then char(10)char(10)SET left(Identity,charindex(char(32),Identity)-1)SCOPE_IDENTITY() else end,UPDATE1CREATE PROCEDURE uTableNamechar(10)char(9)char(9)(replace(s,char(32)output,))char(10)AS,UPDATE2UPDATE TableName2char(10)SET UPDATECol1,UPDATE3WHERE IdentityWHERE,SELECTWHERE1CREATE PROCEDURE rTableNameBystuff(left(Identity,charindex(char(32),Identity)-1),1,1,)char(10)char(9)char(9)(Identity)char(10)ASchar(10)SET NOCOUNT ON;char(10)SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;char(10)SELECT char(10)char(9)ColAllchar(10)Fromchar(10)char(9)TableName2char(10)WHEREchar(10)char(9)IdentityWHERE,SELECT1CREATE PROCEDURE rTableNameForAllchar(10)ASchar(10)SET NOCOUNT ON;char(10)SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;char(10)SELECT char(10)char(9)ColAllchar(10)Fromchar(10)char(9)TableName2,DELETECREATE PROCEDURE dTableNamechar(10)char(9)(Identity)char(10)ASchar(10)DELETE TableName2char(32)WHEREchar(32)IdentityWHERE,InputColCASE when exists(SELECT 1 from Sys.columns WHERE OBJECT_IDObjectID and is_identity1) then Identity else end--Insert
SELECT Insert0
if OBJECT_ID(quotename(cTableName,),P) is not nullchar(13)char(9)DROP PROC quotename(cTableName)
char(10)Gochar(13)char(10)/replicate(*,160)char(10)
%%存储过程名cTableNamechar(10)char(10)
%%输入参数ColName2char(10)char(10)
%%输出参数InputColchar(10)char(10)
%%功能新增记录在表TableNamechar(10)replicate(*,160)char(10)
%%编写Writechar(10)char(10)replicate(*,160)/
,--UPDATEUPDATE0
if OBJECT_ID(quotename(uTableName,),P) is not nullchar(13)char(9)DROP PROC quotename(uTableName)
char(10)Gochar(13)char(10)/replicate(*,160)char(10)
%%存储过程名uTableNamechar(10)char(10)
%%输入参数OutputAllchar(10)char(10)
%%输出参数char(10)char(10)
%%功能修改记录在表TableNamechar(10)replicate(*,160)char(10)
%%编写Writechar(10)char(10)replicate(*,160)/
,
--SELECTWHERE
SELECTWHERE0
if OBJECT_ID(quotename(rTableNameBystuff(left(Identity,charindex(char(32),Identity)-1),1,1,),),P) is not nullchar(13)char(9)DROP PROC quotename(rTableNameBystuff(left(Identity,charindex(char(32),Identity)-1),1,1,))
char(10)Gochar(13)char(10)/replicate(*,160)char(10)
%%存储过程名rTableNameBystuff(left(Identity,charindex(char(32),Identity)-1),1,1,)char(10)char(10)
N%%输入参数Identitychar(10)char(10)
N%%输出参数char(10)char(10)
N%%功能根据条件读取记录在表TableNamechar(10)replicate(*,160)char(10)
%%编写Writechar(10)char(10)replicate(*,160)/,
--SELECT
SELECT0
if OBJECT_ID(quotename(rTableNameForAll,),P) is not nullchar(13)char(9)DROP PROC quotename(rTableNameForAll)
char(10)Gochar(13)char(10)/replicate(*,160)char(10)
%%存储过程名rTableNameForAllchar(10)char(10)
%%输入参数char(10)char(10)
%%输出参数char(10)char(10)
%%功能读取记录在表TableNamechar(10)replicate(*,160)char(10)
%%编写Writechar(10)char(10)replicate(*,160)/,DELETE
if OBJECT_ID(quotename(dTableName,),P) is not nullchar(13)char(9)DROP PROC quotename(dTableName)
char(10)Gochar(13)char(10)/replicate(*,160)char(10)
%%存储过程名dTableNamechar(10)char(10)
%%输入参数char(10)char(10)
%%输出参数Identitychar(10)char(10)
%%功能删除记录在表TableNamechar(10)replicate(*,160)char(10)
%%编写Writechar(10)char(10)replicate(*,160)/char(10)
DELETEchar(13)char(10)Gochar(13)char(10)print USE db_name()char(13)char(10)Gochar(13)char(10)
PRINT Insert0
print Insert1
print Insert2
print Insert3
PRINT Gochar(13)char(10)
print UPDATE0
print UPDATE1
print UPDATE2
print UPDATE3
PRINT Gochar(13)char(10)
print SELECTWHERE0
print SELECTWHERE1
PRINT Gochar(13)char(10)
print SELECT0
print SELECT1
PRINT Gochar(13)char(10)
print DELETEgo
exec sp_ms_marksystemobject CurdSqlString--添加在系统存储过程目录
go2、创建表Tab1 e.g. USE [test]
GO/****** Object: Table [dbo].[Tab1] Script Date: 2016/5/6 11:51:47 ******/
IF OBJECT_ID(Tab1,U) IS NOT NULL
DROP TABLE [dbo].[Tab1]
GO
CREATE TABLE [dbo].[Tab1]([ID] [BIGINT] NULL,[Name] [sysname] NOT NULL
) ON [PRIMARY]GO 3、调用方法 --调用方法:
exec CurdSqlString Tab1-- 表名显示效果 USE test
Go
if OBJECT_ID(cTab1,P) is not nullDROP PROC [cTab1]
Go
/****************************************************************************************************************************************************************
%%存储过程名cTab1%%输入参数ID,Name%%输出参数%%功能新增记录在表Tab1
****************************************************************************************************************************************************************
%%编写Roy 2016-05-06****************************************************************************************************************************************************************/
CREATE PROCEDURE cTab1(ID bigint,Name sysname)
AS
INSERT INTO dbo.Tab1([ID],[Name])
VALUES(ID,Name)
Go
if OBJECT_ID(uTab1,P) is not nullDROP PROC [uTab1]
Go
/****************************************************************************************************************************************************************
%%存储过程名uTab1%%输入参数ID,Name%%输出参数%%功能修改记录在表Tab1
****************************************************************************************************************************************************************
%%编写Roy 2016-05-06****************************************************************************************************************************************************************/
CREATE PROCEDURE uTab1(ID bigint,Name sysname)
AS
UPDATE dbo.Tab1
SET [Name]Name
WHERE [ID]ID
Go
if OBJECT_ID(rTab1ByID,P) is not nullDROP PROC [rTab1ByID]
Go
/****************************************************************************************************************************************************************
%%存储过程名rTab1ByID%%输入参数ID bigint%%输出参数%%功能根据条件读取记录在表Tab1
****************************************************************************************************************************************************************
%%编写Roy 2016-05-06****************************************************************************************************************************************************************/
CREATE PROCEDURE rTab1ByID(ID bigint)
AS
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT [ID],[Name]
Fromdbo.Tab1
WHERE[ID]ID
Go
if OBJECT_ID(rTab1ForAll,P) is not nullDROP PROC [rTab1ForAll]
Go
/****************************************************************************************************************************************************************
%%存储过程名rTab1ForAll%%输入参数%%输出参数%%功能读取记录在表Tab1
****************************************************************************************************************************************************************
%%编写Roy 2016-05-06****************************************************************************************************************************************************************/
CREATE PROCEDURE rTab1ForAll
AS
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT [ID],[Name]
Fromdbo.Tab1
Go
if OBJECT_ID(dTab1,P) is not nullDROP PROC [dTab1]
Go
/****************************************************************************************************************************************************************
%%存储过程名dTab1%%输入参数%%输出参数ID bigint%%功能删除记录在表Tab1
****************************************************************************************************************************************************************
%%编写Roy 2016-05-06****************************************************************************************************************************************************************/
CREATE PROCEDURE dTab1(ID bigint)
AS
DELETE dbo.Tab1 WHERE [ID]ID
Go转载于:https://www.cnblogs.com/Roy_88/p/5473840.html