Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [Equipment]
- GO
- IF OBJECTPROPERTY(object_id('dbo.inv_additem_exp'), N'IsProcedure') = 1
- DROP PROCEDURE [dbo].[inv_additem_exp]
- GO
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- -- =================================================
- -- Author: Antonio F. Gomez
- -- Create date: 04/11/2011
- -- Modify date: 04/01/2012
- -- Description: Adds 1 item to the inventory table.
- -- =================================================
- CREATE PROCEDURE [dbo].[inv_additem_exp]
- (
- @user nvarchar(16)
- ,@item nvarchar(max)
- )
- AS
- BEGIN
- SET NOCOUNT ON;
- DECLARE @ReturnCode int = 0
- ,@ErrorCode int = 0
- ,@RowCount int = 0
- ,@InTrans tinyint = 0
- ,@Message nvarchar(200) = N'inv_additem: '
- DECLARE @count int
- ,@table nvarchar(128) = N'[Equipment].[dbo].[Current Inventory ' + @user + N']'
- ,@sql nvarchar(max);
- EXEC @count = [Aardwolf].[dbo].[cd_is_user] @user;
- IF (@count != 1)
- BEGIN
- SET @ReturnCode = -5
- SET @Message += N'one user with that name not found';
- GOTO ProcError
- END
- CREATE TABLE #item (
- [ObjectID] BIGINT NOT NULL DEFAULT 0 PRIMARY KEY,
- [Flags] INT NOT NULL DEFAULT 0,
- [ItemFlags] VARCHAR(16) NOT NULL DEFAULT '',
- [Name] VARCHAR(1024) NOT NULL DEFAULT '',
- [Display] VARCHAR(1024) NOT NULL DEFAULT '',
- [Level] TINYINT NOT NULL DEFAULT 0,
- [Type] TINYINT NOT NULL DEFAULT 0,
- [Wear] SMALLINT NOT NULL DEFAULT 0,
- [Timer] INT NOT NULL DEFAULT -1,
- [ContainerID] BIGINT NOT NULL DEFAULT 0
- )
- INSERT INTO #item EXEC [dbo].[getItem] @item;
- SET @sql = N'BEGIN TRAN ';
- SET @sql += N'MERGE ' + @table + N' AS [T] USING #item AS [S] ';
- SET @sql += N'ON ([T].[ObjectID] = [S].[ObjectID]) ';
- SET @sql += N'WHEN NOT MATCHED BY TARGET ';
- SET @sql += N'THEN INSERT ( [ObjectID], [Flags], [ItemFlags], [Name],';
- SET @sql += N' [Display], [Level], [Type], [Wear], [Timer], [ContainerID] ) VALUES(';
- SET @sql += N' [S].[ObjectID], [S].[Flags], [S].[ItemFlags],';
- SET @sql += N' [S].[Name], [S].[Display], [S].[Level],';
- SET @sql += N' [S].[Type], [S].[Wear], [S].[Timer],';
- SET @sql += N' [S].[ContainerID] ) ';
- SET @sql += N'WHEN MATCHED THEN UPDATE SET';
- SET @sql += N' [T].[Flags] = [S].[Flags] ';
- SET @sql += N',[T].[ItemFlags] = [S].[ItemFlags] ';
- SET @sql += N',[T].[Name] = [S].[Name] ';
- SET @sql += N',[T].[Display] = [S].[Display] ';
- SET @sql += N',[T].[Level] = [S].[Level] ';
- SET @sql += N',[T].[Type] = [S].[Type] ';
- SET @sql += N',[T].[Wear] = [S].[Wear] ';
- SET @sql += N',[T].[Timer] = [S].[Timer] ';
- SET @sql += N',[T].[ContainerID] = [S].[ContainerID];';
- SET @sql += N'COMMIT TRAN ';
- EXEC sp_executesql @sql;
- SET @ReturnCode = @@ERROR;
- DROP TABLE #item;
- ProcExit:
- RETURN(@ReturnCode)
- ProcError:
- RAISERROR(@Message,16,1)
- GOTO ProcExit
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement