У меня есть вопрос о динамической вставки SQL хранимую процедуру, потому что мне нужно вставить неизвестное количество (динамически),Динамическая вставка SQL хранимая процедура
ниже, как написано:
@Parameter as nvarchar(Max),
@SQLQuery as nvarchar(Max)
SET @SQLQuery = 'insert into <table>
(FieldOne,FieldTwo,FieldThree,GeneratedId,dateAdded,addedBy)
values '[email protected]
EXEC sp_executesql @SQLQuery
Когда я попытаться выполнить эту хранимую процедуру, используя следующие значения:
@Parameter = (1,0,0,12345678123,"2016-03-22 23:26:25",123)
@SQLQuery = null
Я даже пытался (по глупым причинам) попробовать следующие значения:
@Parameter = (1,0,0,12345678123,2016-03-22 23:26:25,123)
@SQLQuery = null
Я получаю ошибку ниже от SQL Server
Msg 102, Level 15, State 1, Line 3 Неправильный синтаксис около '23'.
(1 ряд (ы) пострадавших)
Но ни одной строки фактически добавляются.
В таблице я использую, как показано ниже:
ID (PK and autoincrement)
FieldOne: tinyint
FieldTwo: tinyint
FieldThree: tinyint
GeneratedId: nvarchar(50)
dateAdded: datetime
addedBy: int
Я не могу понять, что я делаю неправильно,
Спасибо всем заранее за ваше время и помощь.
Что вы подразумеваете под «Мне нужно вставить неизвестную сумму»? Неизвестное количество столбцов? –
'@Parameter = (1,0,0,12345678123, '' 2016-03-22 23: 26: 2 '', 123)' Использовать двойные одинарные кавычки –
Да, В какой-то момент мне может понадобиться (1,0, 0,12345678123, «2016-03-22 23:26:25», 123). В другой раз, когда мне понадобится (1,0,0,12345678123, «2016-03-22 23:26:25», 123), (1,0,0,12345678124, «2016-03-22 23:26:26», 123) –