1
我有一些動態的SQL作爲存儲過程的一部分,我想執行:動態刪除空子與COALESCE SQL
SET @SQL_TXT = 'INSERT INTO ' [email protected]_TABLE_NAME+
'([ITEM_NAME]
,[ADD_DTT]
,[ADD_USR]
,[UPD_DTT]
,[UPD_USR]
,[ACTIVE_IND]
,[ITEM_PK])
VALUES
('''[email protected]_VALUE+'''
, CURRENT_TIMESTAMP
, '''[email protected]_USR_DOM_NAME+''', CURRENT_TIMESTAMP,'''[email protected]_USR_DOM_NAME+''',''Y'','''[email protected]_PK+''');
SET @Id = SCOPE_IDENTITY();
RETURN;'
這運行正常,但讓我想廣告ITEM_NAME不能爲空COALESE():
SET @SQL_TXT = 'INSERT INTO ' [email protected]_TABLE_NAME+
'(COALESCE([ITEM_NAME], '')
,[ADD_DTT]
,[ADD_USR]
,[UPD_DTT]
,[UPD_USR]
,[ACTIVE_IND]
,[ITEM_PK])
VALUES
('''[email protected]_VALUE+'''
, CURRENT_TIMESTAMP
, '''[email protected]_USR_DOM_NAME+''', CURRENT_TIMESTAMP,'''[email protected]_USR_DOM_NAME+''',''Y'','''[email protected]_PK+''');
SET @Id = SCOPE_IDENTITY();
RETURN;'
但我收到此錯誤:
Incorrect syntax near the keyword 'COALESCE'.
Unclosed quotation mark after the character string ');
SET @Id = SCOPE_IDENTITY();
RETURN;'.
Incorrect syntax near '='.
對我來說,我的生活中沒有看到這種 ')' 我秒。我究竟做錯了什麼?
編輯:這裏是EXEC
EXECUTE SP_executesql @SQL_TXT, N'@Id INTEGER OUTPUT', @Id OUTPUT
,2個單引號= 1單引用。所以在轉換後,它會顯示:(coalesce([item_name],').....嘗試添加另一組'':'(coalesce([item_name],'''') – fleetmack
@OK,這是有道理的,我仍然得到:關鍵字'COALESCE'附近的語法錯誤'='附近的語法錯誤 –
對不起,我根本不知道SQL Server,也許你需要一個空間才能合併? '(coalesce [item_name],'''') –
fleetmack