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(),
''
返回错误:
Msg 102,Level 15,State 1,Line 5 ','附近的语法不正确。 Msg 102,Level 15,State 1,Line 8 ','附近的语法不正确。 Msg 102,Level 15,State 1,Line 9 ','。
附近的语法不正确答案 0 :(得分: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(),
''
答案 1 :(得分: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。
答案 2 :(得分:0)
我通过全局变量解决了它:声明@PO_PR varchar(50); 声明@Month_Details varchar(50); 声明@Year_Details varchar(50); 设置@PO_PR =(从Purchasing_Default中选择PO_PR,默认值为'默认PO'); 设置@Month_Details =(从查找中选择详细信息,其中Code ='Month_Period'); 设置@Year_Details =(从查找中选择详细信息,其中Code ='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(),
'');