2013-07-08 2 views
-1

Я пытаюсь сделать динамический простой INSERTNULL Значение в моей таблице

SELECT 'INSERT INTO Agency (Agency_Id) VALUES (' + CAST(Agency_Id AS VARCHAR(10)) + ')' 
FROM User 
WHERE User_Id = 1 

Но если мой Agency_Id IS NULL, то этот запрос будет появляться только NULL в результатах, а не запрос, как INSERT INTO Agency (Agency_Id) VALUES (NULL).

Как я могу это сделать?

+3

** Примечание стороны: ** Почему бы не использовать 'INSERT INTO ... SELECT':' INSERT INTO агентство (Agency_Id) SELECT CAST (Agency_Id AS VARCHAR (10)) ОТ пользователя ГДЕ User_Id = 1'? –

+1

Это потому, что когда вы объединяете нуль со всем, это приведет к NULL. – Mari

+0

Если ваше агентство_инуты равно null, вы уверены, что хотите добавить запись? –

ответ

1
SELECT 'INSERT INTO Agency (Agency_Id) VALUES (' + ISNULL(CAST(Agency_Id AS VARCHAR(10)), 'NULL') + ')' 
FROM User 
WHERE User_Id = 1 
0

Просто используйте 'NULL' для нулевых значений:

SELECT 'INSERT INTO Agency (Agency_Id) VALUES (' 
     + ISNULL(Agency_Id,'NULL') 
     + ')' 
FROM User 
WHERE User_Id = 1