我的客户正在运行 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
来提供值,包括固定文字:您不能混合为 an 提供值
VALUES()
的方法和方法- 您可以为值列表提供文字和 SQL 变量- 或者您需要使用SELECT
INSERT
VALUES(.....)
SELECT