I have problems for insert values with a stored procedure with values as parameters and table name too. this is part of my table:
My table:
CREATE TABLE [dbo].[INGRESOLOTEMP_100]
(
[CLIENTE_CODIGO] [SMALLINT] NOT NULL,
[CAJA_CODIGO] [nvarchar](20) NULL,
[CAJA_NUMERO] [SMALLINT] NOT NULL,
)
My stored procedure:
CREATE PROCEDURE [dbo].[SP_LOT_INSERTLOTEMP]
@IDENT_TABLA NVARCHAR(10),
@CLIENTE_CODIGO SMALLINT,
@CAJA_CODIGO NVARCHAR(15),
@CAJA_NUMERO SMALLINT
AS
DECLARE @NOMBRE_TABLA NVARCHAR(40)
SELECT
@NOMBRE_TABLA = 'INGRESOLOTEMP_' + CONVERT(VARCHAR(100), @IDENT_TABLA)
SELECT
@CAJA_CODIGO = CONVERT(VARCHAR(20), @CAJA_CODIGO)
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = 'INSERT into dbo.' + quotename(@NOMBRE_TABLA) +
' (CLIENTE_CODIGO, CAJA_CODIGO, CAJA_NUMERO) VALUES (' +
CONVERT(VARCHAR(20),@CLIENTE_CODIGO) + ',' + @CAJA_CODIGO + ',' +
CONVERT(VARCHAR(20),@CAJA_NUMERO) +
')'
EXEC sp_executesql @SQL
My table name is formed by a table name + an Id (every user has one)
But the problem is when I execute the stored procedure:
SP_LOT_INSERTLOTEMP 100, 123, 'uio123', 1
I have an error in SQL with value: 'uio123'
But if I execute:
SP_LOT_INSERTLOTEMP 100, 123, 80, 1
The insert is perfect, The problem is that I need insert numeric and text values, even date time values too. I realized varchar conversions in the stored procedure, but I don't get it yet.
Anyone, have an Idea?
Please I hope you can help me.
'uio123'?