日期:2014-05-18  浏览次数:20627 次

創建儲存過程出現了問題
在下創建了一個表格 如下所示



想要用利用儲存過程 把語句查詢出來 

以下是在下寫的代碼:
SQL code

CREATE PROC 查詢語句流程
(
@你說什麼='哈瞜'
@我回什麼
AS 
BEGIN
SELECT * FROM 語句表
ON
WHERE (語句表.你說什麼=語句表.@你說什麼)
AND (語句表.@我回什麼=語句表.我回什麼)
OUTPUT @我回什麼
END
GO
EXEC 查出語句流程 @你說什麼,@我回什麼



我定義了 @你說什麼 @我回什麼 兩個區域變數

我先暫時指派 @我回什麼的值是 哈瞜 那我要從表格中查出 我回什麼

這句對應的語句 到我指派的區域變數 @你說什麼 這是我要的功能


但我的代碼出現了幾個問題 麻煩大大指點一下 該如何修改


訊息 102,層級 15,狀態 1,程序 查詢語句流程,行 4
接近 '@我回什麼' 之處的語法不正確。
訊息 156,層級 15,狀態 1,程序 查詢語句流程,行 8
接近關鍵字 'ON' 之處的語法不正確。
訊息 137,層級 15,狀態 2,行 1
必須宣告純量變數 "@你說什麼"。


------解决方案--------------------
SQL code

CREATE PROC 查詢語句流程
(
@你說什麼 Varchar(50),
@我回什麼 Varchar(50) OUTPUT)
AS 
BEGIN
    SELECT * FROM 語句表
    WHERE (語句表.你說什麼=@你說什麼)AND (@我回什麼=語句表.我回什麼)
--OUTPUT @我回什麼
END
GO

Declare @你說什麼 Varchar(50),@我回什麼 Varchar(50) 
Set @你說什麼 ='哈瞜'
EXEC 查出語句流程 @你說什麼,@我回什麼
GO

------解决方案--------------------
SQL code
CREATE TABLE 語句表
(
句子數量 int IDENTITY(1,1) NOT NULL PRIMARY KEY,
你說什麼 NVARCHAR(100) NOT NULL,
我回什麼 NVARCHAR(100) NOT NULL
)
GO
insert into 語句表 select '哈瞜','你好!'
go
CREATE PROC 查詢語句流程
(
@你說什麼 Varchar(50),
@我回什麼 Varchar(50) OUTPUT)
AS 
BEGIN
    SELECT @我回什麼=我回什麼 FROM 語句表
    WHERE 你說什麼=@你說什麼
END
GO

Declare @你說什麼 Varchar(50),@我回什麼 Varchar(50) 
Set @你說什麼 ='哈瞜'
EXEC 查詢語句流程 @你說什麼,@我回什麼 output
select @我回什麼
/*
--------------------------------------------------
你好!

(1 行受影响)

*/
GO
drop table 語句表
drop procedure 查詢語句流程