Sql-Server-2000
在這種情況下不允許子查詢。只允許標量表達式
我的客戶正在執行 MS SQL Server 2000。我完成了一個項目,但我沒有意識到 MS SQL Server 2000 不允許在值中進行選擇,因此出現錯誤:
Subqueries are not allowed in this context. Only scalar expressions are allowed.
釷
insert into table_one (greeting_column, name_column) values ( 'hello', (select column_1 from table_to where name = 'bob') )
我從coldfusion10 呼叫這個查詢。我已經實現了一個利用coldFusion10解決這個問題的解決方案,方法是替換呼叫查詢的select語句並將結果儲存在coldFusion列表變數中,然後遍歷一個循環,將CF列表變數的內容插入到其各自的記錄中,但是這需要比簡單的 SQL 語句更多的處理。我找到了這樣的解決方案:
CREATE PROC whatever @REC int, @ChangedIP varchar(15), @ChangedBY varchar(30) AS INSERT INTO table_LOG SELECT *, GETDATE(), @ChangedID, @ChangedBy FROM table WHERE record = @REC
但我不認為 ColdFusion 會在查詢中允許這樣做(將在周末後嘗試)有沒有辦法重寫不使用 Transact-SQL 變數?
您可以改用此程式碼 - 只需使用
SELECT
來提供值,包括固定文字:INSERT INTO dbo.table_one (greeting_column, name_column) SELECT 'hello', column_1 FROM dbo.table_to WHERE name = 'bob'
您不能混合為 an 提供值
VALUES()
的方法和方法- 您可以為值列表提供文字和 SQL 變數- 或者您需要使用SELECT``INSERT``VALUES(.....)``SELECT