1. sql查詢中如何使用參數
這樣就只能通過動態拼成SQL了。
begin
declare @sql varchar(max)
set @sql ='SELECT PERSON, POSITION
FROM TABLE_'+變數+'
WHERE TIME>1514156400'
exec (@sql)
end
2. sql語句加參數
你需要了解sql語句的拼接和一般字元串的拼接的異同.
例如:在sql腳本語句中,字元串用單引號'',這些在C#語句中拼接"sql語句"字元串時需要注意.
你可以在vs.net中寫一個用字元串拼接的sql語句,最後把它賦值給一個字元串對象.然後用斷點調試區查看生成的sql語句的結果,一般sql語句較長,驗證的方式都是把這段sql語句到sql sever的腳本文件(.sql)中去執行一下,就知道是否正確了.當然也有先在sql server 中調試好拼接字元串後再到程序代碼中去修改的.具體方式不定.
(以上是介紹的拼接sql語句方法,不過這種方式的安全性不高,常見的sql注入式攻擊就是利用的拼接sql語句的缺陷.)
你還可以考慮使用帶參數的存儲過程來實現,這個就需要了解存儲過程的一些知識了,具體的方法我就不介紹了,關於帶參數的存儲過程,網上有很多例子參考.
3. 帶參數的sql語句!不懂
sql ="insert into note(title,author,content) values(?,?,?)";
上面的這樣的就是帶參數的SQL語句。
下面的那樣的就是存儲過程。
set rs=server.CreateObject("adodb.recordset")
sql="select * from note"
rs.open sql,conn,1,3
rs.addnew
rs("title")=?
rs("author")=?
rs("content")=?
rs.update
rs.close
set rs=nothing
帶參數的SQL語句的優點:不用關心語句的單引號的問題了
,令外可以有效的防止SQL注入的非法入侵,這樣寫程序在編譯的時候就把那語句編譯了,不會與其它字元匹配了,這就是防止SQL注入的問題了,
唯一的缺點就是佔用系統資源的問題了,因為它是早被預編譯好的東西,所以系統在調用的時候是直接使用的,不需要再次進行對SQL語句進行編譯了,如果項目小的話,少量的這樣的代碼可以不用計較資源的問題了
4. sql怎麼使用參數化
採用sp_executesql 系統存儲過程,執行sql語句,就能傳入參數,
這就是sql參數化sql腳本參數化
你可以根據上面的例子,將sql腳本中定義參數,然後後面賦值參數變數,
在查詢分析器中執行,你就可以知道sql參數化的具體實現和概念了。
如有疑問,請及時溝通!
請採納!
5. SQL 存儲過程中參數怎麼使用
參數定義
單個參數
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
註:
SQL
Server
的
OUTPUT
需要寫在變數數據類型後面。
SQL
Server
沒有
IN
OUT
關鍵字
OUTPUT
已經相當於
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
參數的默認值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定參數名稱調用
此部分使用
「參數默認值」那一小節的存儲過程。
用於說明當最後2個參數是有默認的時候,如何跳過中間那個。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0
6. sql資料庫中怎樣調用帶參數的存儲過程
在sql
server中
執行帶參數的存儲過程
exec+空格+存儲過程名+空格+參數
多個參數的話用逗號分隔
傳出參數要加output
例如:
exec
P_GetIntegratedFluxOneMoment
@StartTableName,@ColName,@StartTime,@StartValue
output
其中@StartTableName,@ColName,@StartTime,@StartValue都是前面已經定義好的變數
傳入參數也可以不用變數
直接寫值也行
程序中調用的話看你用什麼語言了
各個語言的調用方法不一樣
7. 執行sql命令是要求輸入參數值是什麼意思
執行SQL語句必須要一些參數的,如果沒有參數就意味著整個語句連條件限制都沒有,這是很不靠譜的。
8. sql server2008添加表的時候顯示無法顯示請求對話框參數名ncolidex
sql server2008添加表的時候顯示無法顯示請求對話框參數名ncolidex
。bak 結尾的就是備份,在資料庫上右鍵 還原 ,點擊---源設備,選擇你的備份文件目錄,選擇完畢後點擊確定,備份文件會出現在下面的表格中,選中前面的對話框, 再選擇--最上面的目標資料庫,裡面有一個 名字跟你的資料庫備份 名稱一樣,選中它,最後點擊確定,還原成功!