0
Insert into po_header 
(Code,Date,Status,Month_Period,Year_Period,Created_Date,Created_User)

(Select PO_PR from Purchasing_Default Where Defaults = 'Default PO'),
GETDATE(),
'Saved',
(Select Details from Lookup Where Code ='Month_Period'),
(Select Details from Lookup Where Code ='Year_Period'),
GETDATE(),
''

返回错误:

消息 102,级别 15,状态 1,第 5 行 ',' 附近的语法不正确。消息 102,级别 15,状态 1,第 8 行 ',' 附近的语法不正确。消息 102,级别 15,状态 1,第 9 行 ',' 附近的语法不正确。

4

3 回答 3

1

在列出的值之前添加 Select 语句

Insert into po_header 
(Code,Date,Status,Month_Period,Year_Period,Created_Date,Created_User)
Select (Select PO_PR from Purchasing_Default Where Defaults = 'Default PO'),
       GETDATE(),
       'Saved',
       (Select Details from Lookup Where Code ='Month_Period'),
       (Select Details from Lookup Where Code ='Year_Period'),
       GETDATE(),
       ''
于 2012-11-18T01:06:55.427 回答
0

您需要在尝试插入之前创建一个有效的数据集;您能否编写一个 SELECT 语句来返回您希望插入到目标表中的所有列和行?如果没有更好地了解您的表格和关系,就很难给您更具体的建议,但显然您正在尝试的内容是无效的。但是,类似:

INSERT INTO TABLE (col1, col2, col3)
SELECT a.col1, b.col2, b.col3
FROM a JOIN b on a.ID = b.ID

将工作。

HTH。

于 2012-11-17T05:16:15.040 回答
0

我通过如下全局变量解决了它:声明@PO_PR varchar(50); 声明@Month_Details varchar(50); 声明@Year_Details varchar(50); 设置@PO_PR =(从 Purchasing_Default 中选择 PO_PR,其中 Defaults = 'Default PO');设置@Month_Details =(从代码='Month_Period'的查找中选择详细信息);设置@Year_Details =(从代码='Year_Period'的查找中选择详细信息);

Insert into po_header (Code,Date,     
[Status],Month_Period,Year_Period,Created_Date,Created_User)

Values(
@PO_PR,
GETDATE(),
'Saved',
@Month_Details,
@Year_Details,
GETDATE(),
'');
于 2012-11-17T13:16:17.793 回答