I have a problem with my stored procedure
ALTER PROCEDURE [dbo].[TIGER_CREATE_RUNTIME_TABLE](@NOMBRE_TABLA varchar(100))
AS
DECLARE @SQLQUERY1 AS NVARCHAR(600)
BEGIN
SET @SQLQUERY1 = 'CREATE TABLE '+@NOMBRE_TABLA + '(
SEGMENTO varchar(200) NULL,
TCNFOL varchar(200) NOT NULL,
TCCOPL_A varchar(200) NULL,
ID_LIN_NEG varchar(200) NULL,
TIP_LIN varchar(200) NULL,
MON_ID_MONEDA varchar(200) NULL,
LINEAS_FACT varchar(200) NULL,
CF_VOZ varchar(200) NULL,
CF_DATOS varchar(200) NULL,
ADIC_MINS varchar(200) NULL,
ADIC_LDN varchar(200) NULL,
ADIC_LDI varchar(200) NULL,
ADIC_SMS varchar(200) NULL,
PAQ_SMS varchar(200) NULL,
ADIC_DATOS varchar(200) NULL,
OTROS varchar(200) NULL,
SUB_TOT varchar(200) NULL,
PERIODO_ANALISIS varchar(200) NULL,
PERIODO_ALTA varchar(200) NULL,
CATEGORIA varchar(200) NULL,
RUC varchar(200) NULL)'
EXEC sp_ExecuteSql @SQLQUERY1
END
As you can see, I’m using dynamic SQL, but there is an error while I execute it.
Mens. 102, Level 15, State 1, Line 20
Incorrect syntax near ‘varch’.
Is there any wrong with dynamic SQL? Thanks for a while.
I would change your
@sqlquery1tovarchar(max), I think you are hitting the character limit when you add your table name:You have your limit of your query string set to 600 but when you add in a table name of up to
varchar(100)you are most likely going over the limit.If you run just the following with no table name the len is 726 characters:
If you leave your query string at a length of
600your create table statement will be cut off and will generate an error.