在存储过程中不能有USE语句

问题描述 投票:0回答:3

我正在尝试创建一个存储过程,稍后我可以在insert语句中使用它。以下是我在程序中尝试的以下查询:

USE live12
SELECT 
    ca.value('(/CA/@ID)[1]','VARCHAR(MAX)'),
    ca.value('(/CA/@value)[1]', 'VARCHAR(MAX)'),
    ca.value('(/CA/@Date)[1]', 'VARCHAR(MAX)')
FROM log

我已经读过,我不能在存储过程中使用“USE”语句,但是当我拿出它时,SELECT代码用红色加下划线,因为它不知道列ca存在,并且该日志是一个表。我怎样才能解决这个问题?

sql-server
3个回答
2
投票

你能用这种方式写吗?

SELECT 
    ca.value('(/CA/@ID)[1]','VARCHAR(MAX)'),
    ca.value('(/CA/@value)[1]', 'VARCHAR(MAX)'),
    ca.value('(/CA/@Date)[1]', 'VARCHAR(MAX)')
FROM live12.dbo.log

0
投票

您需要在live12数据库中创建存储过程。


0
投票

使用alias

SELECT 
    x.ca.value('(/CA/@ID)[1]','VARCHAR(MAX)'),
    x.ca.value('(/CA/@value)[1]', 'VARCHAR(MAX)'),
    x.ca.value('(/CA/@Date)[1]', 'VARCHAR(MAX)')
FROM live12.dbo.log x
-- OR:
-- FROM live12.dbo.log AS x
© www.soinside.com 2019 - 2024. All rights reserved.