我想通过构建动态查询并存储在变量中并执行变量来编写简单的SP。动态SQL查询给出类型错误
我目前得到以下错误:
Msg 206, Level 16, State 2, Line 16
Operand type clash: datetime2 is incompatible with float
对于下面的代码:
DECLARE
@table_Num
@1 varchar(100) = 'boo',
@2 int =2,
@3 varchar(100) ='default',
@4 varchar(50) = NULL,
@5 int =NULL,
@6 float =12,
@7 datetime2(0) ='1970-01-01 00:00:00',
@8 datetime2(0)='1970-01-01 00:00:00',
@9 varchar(50)='',
@10 varchar(50)=NULL,
@11 decimal(18,0)=0000000000000,
@12 int =999999
DECLARE @SQLString NVARCHAR(MAX)
SET @SQLString = 'INSERT INTO abc_'[email protected]_Num+'(col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12)
VALUES ('[email protected]+',2,'[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+','[email protected]+')'
EXEC (@SQLString)
至于我能看到的变量是同一类型的表山坳类型。有任何想法吗?
您是否还可以包含'table_1'的定义? –
这是构建动态SQL字符串的绝对最糟糕的方法。你能解释为什么它首先需要成为动态SQL吗? –
@AaronBertrand伟大的一点。我认为这是理所当然的,因为它是动态SQL。 –