Created
May 18, 2018 23:00
-
-
Save qbantek/2fc68544bfdca039378cbfaa275f91e0 to your computer and use it in GitHub Desktop.
insert, select, update & delete generators
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/****** Object: StoredProcedure [dbo].[pr__SYS_MakeSelectRecordProc] Script Date: 5/18/2018 6:55:24 PM ******/ | |
SET ANSI_NULLS ON | |
GO | |
SET QUOTED_IDENTIFIER OFF | |
GO | |
CREATE PROC [dbo].[pr__SYS_MakeSelectRecordProc] | |
@sTableName varchar(128), | |
@bExecute bit = 0 | |
AS | |
IF dbo.fnTableHasPrimaryKey(@sTableName) = 0 | |
BEGIN | |
RAISERROR ('Procedure cannot be created on a table with no primary key.', 10, 1) | |
RETURN | |
END | |
DECLARE @sProcText varchar(8000), | |
@sKeyFields varchar(2000), | |
@sSelectClause varchar(2000), | |
@sWhereClause varchar(2000), | |
@sColumnName varchar(128), | |
@nColumnID smallint, | |
@bPrimaryKeyColumn bit, | |
@nAlternateType int, | |
@nColumnLength int, | |
@nColumnPrecision int, | |
@nColumnScale int, | |
@IsNullable bit, | |
@IsIdentity int, | |
@sTypeName varchar(128), | |
@sDefaultValue varchar(4000), | |
@sCRLF char(2), | |
@sTAB char(1) | |
SET @sTAB = char(9) | |
SET @sCRLF = char(13) + char(10) | |
SET @sProcText = '' | |
SET @sKeyFields = '' | |
SET @sSelectClause = '' | |
SET @sWhereClause = '' | |
SET @sProcText = @sProcText + 'IF EXISTS(SELECT * FROM sysobjects WHERE name = ''prApp_' + @sTableName + '_Select'')' + @sCRLF | |
SET @sProcText = @sProcText + @sTAB + 'DROP PROC prApp_' + @sTableName + '_Select' + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
SET @sProcText = '' | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + '-- Select a single record from ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + 'CREATE PROC prApp_' + @sTableName + '_Select' + @sCRLF | |
DECLARE crKeyFields cursor for | |
SELECT * | |
FROM dbo.fnTableColumnInfo(@sTableName) | |
ORDER BY 2 | |
OPEN crKeyFields | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
IF (@bPrimaryKeyColumn = 1) | |
BEGIN | |
IF (@sKeyFields <> '') | |
SET @sKeyFields = @sKeyFields + ',' + @sCRLF | |
SET @sKeyFields = @sKeyFields + @sTAB + '@' + @sColumnName + ' ' + @sTypeName | |
IF (@nAlternateType = 2) --decimal, numeric | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnPrecision AS varchar(3)) + ', ' | |
+ CAST(@nColumnScale AS varchar(3)) + ')' | |
ELSE IF (@nAlternateType = 1) --character and binary | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnLength AS varchar(4)) + ')' | |
IF (@sWhereClause = '') | |
SET @sWhereClause = @sWhereClause + 'WHERE ' | |
ELSE | |
SET @sWhereClause = @sWhereClause + ' AND ' | |
SET @sWhereClause = @sWhereClause + @sTAB + @sColumnName + ' = @' + @sColumnName + @sCRLF | |
END | |
IF (@sSelectClause = '') | |
SET @sSelectClause = @sSelectClause + 'SELECT' | |
ELSE | |
SET @sSelectClause = @sSelectClause + ',' + @sCRLF | |
SET @sSelectClause = @sSelectClause + @sTAB + @sColumnName | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
END | |
CLOSE crKeyFields | |
DEALLOCATE crKeyFields | |
SET @sSelectClause = @sSelectClause + @sCRLF | |
SET @sProcText = @sProcText + @sKeyFields + @sCRLF | |
SET @sProcText = @sProcText + 'AS' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
SET @sProcText = @sProcText + @sSelectClause | |
SET @sProcText = @sProcText + 'FROM ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + @sWhereClause | |
SET @sProcText = @sProcText + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
GO | |
/****** Object: StoredProcedure [dbo].[pr__SYS_MakeInsertRecordProc] Script Date: 5/18/2018 6:55:13 PM ******/ | |
SET ANSI_NULLS ON | |
GO | |
SET QUOTED_IDENTIFIER ON | |
GO | |
CREATE PROC [dbo].[pr__SYS_MakeInsertRecordProc] | |
@sTableName varchar(128), | |
@bExecute bit = 0 | |
AS | |
IF dbo.fnTableHasPrimaryKey(@sTableName) = 0 | |
BEGIN | |
RAISERROR ('Procedure cannot be created on a table with no primary key.', 10, 1) | |
RETURN | |
END | |
DECLARE @sProcText varchar(8000), | |
@sKeyFields varchar(2000), | |
@sAllFields varchar(2000), | |
@sAllParams varchar(2000), | |
@sWhereClause varchar(2000), | |
@sColumnName varchar(128), | |
@nColumnID smallint, | |
@bPrimaryKeyColumn bit, | |
@nAlternateType int, | |
@nColumnLength int, | |
@nColumnPrecision int, | |
@nColumnScale int, | |
@IsNullable bit, | |
@IsIdentity int, | |
@HasIdentity int, | |
@sTypeName varchar(128), | |
@sDefaultValue varchar(4000), | |
@sCRLF char(2), | |
@sTAB char(1) | |
SET @HasIdentity = 0 | |
SET @sTAB = char(9) | |
SET @sCRLF = char(13) + char(10) | |
SET @sProcText = '' | |
SET @sKeyFields = '' | |
SET @sAllFields = '' | |
SET @sWhereClause = '' | |
SET @sAllParams = '' | |
SET @sProcText = @sProcText + 'IF EXISTS(SELECT * FROM sysobjects WHERE name = ''prApp_' + @sTableName + '_Insert'')' + @sCRLF | |
SET @sProcText = @sProcText + @sTAB + 'DROP PROC prApp_' + @sTableName + '_Insert' + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
SET @sProcText = '' | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + '-- Insert a single record into ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + 'CREATE PROC prApp_' + @sTableName + '_Insert' + @sCRLF | |
DECLARE crKeyFields cursor for | |
SELECT * | |
FROM dbo.fnTableColumnInfo(@sTableName) | |
ORDER BY 2 | |
OPEN crKeyFields | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
IF (@IsIdentity = 0) | |
BEGIN | |
IF (@sKeyFields <> '') | |
SET @sKeyFields = @sKeyFields + ',' + @sCRLF | |
SET @sKeyFields = @sKeyFields + @sTAB + '@' + @sColumnName + ' ' + @sTypeName | |
IF (@sAllFields <> '') | |
BEGIN | |
SET @sAllParams = @sAllParams + ', ' | |
SET @sAllFields = @sAllFields + ', ' | |
END | |
IF (@sTypeName = 'timestamp') | |
SET @sAllParams = @sAllParams + 'NULL' | |
ELSE IF (@sDefaultValue IS NOT NULL) | |
SET @sAllParams = @sAllParams + 'COALESCE(@' + @sColumnName + ', ' + @sDefaultValue + ')' | |
ELSE | |
SET @sAllParams = @sAllParams + '@' + @sColumnName | |
SET @sAllFields = @sAllFields + @sColumnName | |
END | |
ELSE | |
BEGIN | |
SET @HasIdentity = 1 | |
END | |
IF (@nAlternateType = 2) --decimal, numeric | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnPrecision AS varchar(3)) + ', ' | |
+ CAST(@nColumnScale AS varchar(3)) + ')' | |
ELSE IF (@nAlternateType = 1) --character and binary | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnLength AS varchar(4)) + ')' | |
IF (@IsIdentity = 0) | |
BEGIN | |
IF (@sDefaultValue IS NOT NULL) OR (@IsNullable = 1) OR (@sTypeName = 'timestamp') | |
SET @sKeyFields = @sKeyFields + ' = NULL' | |
END | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
END | |
CLOSE crKeyFields | |
DEALLOCATE crKeyFields | |
SET @sProcText = @sProcText + @sKeyFields + @sCRLF | |
SET @sProcText = @sProcText + 'AS' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
SET @sProcText = @sProcText + 'INSERT ' + @sTableName + '(' + @sAllFields + ')' + @sCRLF | |
SET @sProcText = @sProcText + 'VALUES (' + @sAllParams + ')' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
IF (@HasIdentity = 1) | |
BEGIN | |
SET @sProcText = @sProcText + 'RETURN SCOPE_IDENTITY()' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
END | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
GO | |
/****** Object: StoredProcedure [dbo].[pr__SYS_MakeUpdateRecordProc] Script Date: 5/18/2018 6:55:35 PM ******/ | |
SET ANSI_NULLS ON | |
GO | |
SET QUOTED_IDENTIFIER ON | |
GO | |
CREATE PROC [dbo].[pr__SYS_MakeUpdateRecordProc] | |
@sTableName varchar(128), | |
@bExecute bit = 0 | |
AS | |
IF dbo.fnTableHasPrimaryKey(@sTableName) = 0 | |
BEGIN | |
RAISERROR ('Procedure cannot be created on a table with no primary key.', 10, 1) | |
RETURN | |
END | |
DECLARE @sProcText varchar(8000), | |
@sKeyFields varchar(2000), | |
@sSetClause varchar(2000), | |
@sWhereClause varchar(2000), | |
@sColumnName varchar(128), | |
@nColumnID smallint, | |
@bPrimaryKeyColumn bit, | |
@nAlternateType int, | |
@nColumnLength int, | |
@nColumnPrecision int, | |
@nColumnScale int, | |
@IsNullable bit, | |
@IsIdentity int, | |
@sTypeName varchar(128), | |
@sDefaultValue varchar(4000), | |
@sCRLF char(2), | |
@sTAB char(1) | |
SET @sTAB = char(9) | |
SET @sCRLF = char(13) + char(10) | |
SET @sProcText = '' | |
SET @sKeyFields = '' | |
SET @sSetClause = '' | |
SET @sWhereClause = '' | |
SET @sProcText = @sProcText + 'IF EXISTS(SELECT * FROM sysobjects WHERE name = ''prApp_' + @sTableName + '_Update'')' + @sCRLF | |
SET @sProcText = @sProcText + @sTAB + 'DROP PROC prApp_' + @sTableName + '_Update' + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
SET @sProcText = '' | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + '-- Update a single record in ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + 'CREATE PROC prApp_' + @sTableName + '_Update' + @sCRLF | |
DECLARE crKeyFields cursor for | |
SELECT * | |
FROM dbo.fnTableColumnInfo(@sTableName) | |
ORDER BY 2 | |
OPEN crKeyFields | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
IF (@sKeyFields <> '') | |
SET @sKeyFields = @sKeyFields + ',' + @sCRLF | |
SET @sKeyFields = @sKeyFields + @sTAB + '@' + @sColumnName + ' ' + @sTypeName | |
IF (@nAlternateType = 2) --decimal, numeric | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnPrecision AS varchar(3)) + ', ' | |
+ CAST(@nColumnScale AS varchar(3)) + ')' | |
ELSE IF (@nAlternateType = 1) --character and binary | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnLength AS varchar(4)) + ')' | |
IF (@bPrimaryKeyColumn = 1) | |
BEGIN | |
IF (@sWhereClause = '') | |
SET @sWhereClause = @sWhereClause + 'WHERE ' | |
ELSE | |
SET @sWhereClause = @sWhereClause + ' AND ' | |
SET @sWhereClause = @sWhereClause + @sTAB + @sColumnName + ' = @' + @sColumnName + @sCRLF | |
END | |
ELSE | |
IF (@IsIdentity = 0) | |
BEGIN | |
IF (@sSetClause = '') | |
SET @sSetClause = @sSetClause + 'SET' | |
ELSE | |
SET @sSetClause = @sSetClause + ',' + @sCRLF | |
SET @sSetClause = @sSetClause + @sTAB + @sColumnName + ' = ' | |
IF (@sTypeName = 'timestamp') | |
SET @sSetClause = @sSetClause + 'NULL' | |
ELSE IF (@sDefaultValue IS NOT NULL) | |
SET @sSetClause = @sSetClause + 'COALESCE(@' + @sColumnName + ', ' + @sDefaultValue + ')' | |
ELSE | |
SET @sSetClause = @sSetClause + '@' + @sColumnName | |
END | |
IF (@IsIdentity = 0) | |
BEGIN | |
IF (@IsNullable = 1) OR (@sTypeName = 'timestamp') | |
SET @sKeyFields = @sKeyFields + ' = NULL' | |
END | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
END | |
CLOSE crKeyFields | |
DEALLOCATE crKeyFields | |
SET @sSetClause = @sSetClause + @sCRLF | |
SET @sProcText = @sProcText + @sKeyFields + @sCRLF | |
SET @sProcText = @sProcText + 'AS' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
SET @sProcText = @sProcText + 'UPDATE ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + @sSetClause | |
SET @sProcText = @sProcText + @sWhereClause | |
SET @sProcText = @sProcText + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
GO | |
/****** Object: StoredProcedure [dbo].[pr__SYS_MakeDeleteRecordProc] Script Date: 5/18/2018 6:55:04 PM ******/ | |
SET ANSI_NULLS ON | |
GO | |
SET QUOTED_IDENTIFIER OFF | |
GO | |
CREATE PROC [dbo].[pr__SYS_MakeDeleteRecordProc] | |
@sTableName varchar(128), | |
@bExecute bit = 0 | |
AS | |
IF dbo.fnTableHasPrimaryKey(@sTableName) = 0 | |
BEGIN | |
RAISERROR ('Procedure cannot be created on a table with no primary key.', 10, 1) | |
RETURN | |
END | |
DECLARE @sProcText varchar(8000), | |
@sKeyFields varchar(2000), | |
@sWhereClause varchar(2000), | |
@sColumnName varchar(128), | |
@nColumnID smallint, | |
@bPrimaryKeyColumn bit, | |
@nAlternateType int, | |
@nColumnLength int, | |
@nColumnPrecision int, | |
@nColumnScale int, | |
@IsNullable bit, | |
@IsIdentity int, | |
@sTypeName varchar(128), | |
@sDefaultValue varchar(4000), | |
@sCRLF char(2), | |
@sTAB char(1) | |
SET @sTAB = char(9) | |
SET @sCRLF = char(13) + char(10) | |
SET @sProcText = '' | |
SET @sKeyFields = '' | |
SET @sWhereClause = '' | |
SET @sProcText = @sProcText + 'IF EXISTS(SELECT * FROM sysobjects WHERE name = ''prApp_' + @sTableName + '_Delete'')' + @sCRLF | |
SET @sProcText = @sProcText + @sTAB + 'DROP PROC prApp_' + @sTableName + '_Delete' + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
SET @sProcText = '' | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + '-- Delete a single record from ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + '----------------------------------------------------------------------------' + @sCRLF | |
SET @sProcText = @sProcText + 'CREATE PROC prApp_' + @sTableName + '_Delete' + @sCRLF | |
DECLARE crKeyFields cursor for | |
SELECT * | |
FROM dbo.fnTableColumnInfo(@sTableName) | |
ORDER BY 2 | |
OPEN crKeyFields | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
WHILE (@@FETCH_STATUS = 0) | |
BEGIN | |
IF (@bPrimaryKeyColumn = 1) | |
BEGIN | |
IF (@sKeyFields <> '') | |
SET @sKeyFields = @sKeyFields + ',' + @sCRLF | |
SET @sKeyFields = @sKeyFields + @sTAB + '@' + @sColumnName + ' ' + @sTypeName | |
IF (@nAlternateType = 2) --decimal, numeric | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnPrecision AS varchar(3)) + ', ' | |
+ CAST(@nColumnScale AS varchar(3)) + ')' | |
ELSE IF (@nAlternateType = 1) --character and binary | |
SET @sKeyFields = @sKeyFields + '(' + CAST(@nColumnLength AS varchar(4)) + ')' | |
IF (@sWhereClause = '') | |
SET @sWhereClause = @sWhereClause + 'WHERE ' | |
ELSE | |
SET @sWhereClause = @sWhereClause + ' AND ' | |
SET @sWhereClause = @sWhereClause + @sTAB + @sColumnName + ' = @' + @sColumnName + @sCRLF | |
END | |
FETCH NEXT | |
FROM crKeyFields | |
INTO @sColumnName, @nColumnID, @bPrimaryKeyColumn, @nAlternateType, | |
@nColumnLength, @nColumnPrecision, @nColumnScale, @IsNullable, | |
@IsIdentity, @sTypeName, @sDefaultValue | |
END | |
CLOSE crKeyFields | |
DEALLOCATE crKeyFields | |
SET @sProcText = @sProcText + @sKeyFields + @sCRLF | |
SET @sProcText = @sProcText + 'AS' + @sCRLF | |
SET @sProcText = @sProcText + @sCRLF | |
SET @sProcText = @sProcText + 'DELETE ' + @sTableName + @sCRLF | |
SET @sProcText = @sProcText + @sWhereClause | |
SET @sProcText = @sProcText + @sCRLF | |
IF @bExecute = 0 | |
SET @sProcText = @sProcText + 'GO' + @sCRLF | |
PRINT @sProcText | |
IF @bExecute = 1 | |
EXEC (@sProcText) | |
GO | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment