有人可以帮助我如何将Parameter值传递给Variable
中的字符串例如:
DECLARE @STR VARCHAR(MAX) = ''
DECLARE @ID INT
SET @STR = 'SELECT * FROM STUDENT WHERE STUDENT_ID=@ID'
这里我想将@ID作为参数传递给Variable @STR
答案 0 :(得分:2)
使用sp_executesql
来赋值参数,这也可以避免sql注入。试试这个
DECLARE @STR NVARCHAR(MAX) = ''
DECLARE @ID INT
SET @STR = 'SELECT * FROM STUDENT WHERE STUDENT_ID=@ID'
exec sp_executesql @str,'@ID INT',@ID
答案 1 :(得分:1)
使用此:
DECLARE @STR VARCHAR(MAX) = ''
DECLARE @ID INT
SET @STR = 'SELECT * FROM STUDENT WHERE STUDENT_ID=' + CAST(@ID AS VARCHAR(50))
答案 2 :(得分:0)
这是一个简单的方法:
.popover-title {
border-bottom: 1px solid red; // added this
}
当然还有其他人。您可以在构建.popover-title {
border-bottom: 0; // added this
}
时使用字符串连接,或者您可以保持原样并在最终要执行字符串时使用sp_executesql的参数化调用,假设您想要执行的操作用它。
答案 3 :(得分:0)
您可以将查询编写为:
DECLARE @ID int;
--to use sp_executesql sql statement must be a Unicode variable
DECLARE @STR nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
/* Build the SQL string.
as a best practice you should specify column names instead of writing *
*/
SET @STR =
N'SELECT Col1,Col2 FROM STUDENT WHERE STUDENT_ID=@ID';
SET @ParmDefinition = N'@ID Int';
/* Execute the string with the parameter value. */
SET @ID = 1;
EXECUTE sp_executesql @STR, @ParmDefinition,
@ID = @ID;
答案 4 :(得分:0)
为简单起见,您还可以为它创建存储过程: -
SQL中的代码
[ProcedureName] 1
--Here replace "1" with your Id
调用商店程序
<?php
$db = mysql_connect('localhost','user','pass');
mysql_select_db('test_db');
$stmt = "INSERT INTO `test` (`first`,`last`,`whenadded`) VALUES ".
"('{$first}','{$last}','SYSDATE())";
$rslt = mysql_query($stmt);
?>
答案 5 :(得分:0)
DECLARE @STR VARCHAR(MAX)=''
DECLARE @ID INT
SET @STR ='SELECT * FROM STUDENT_ID ='+ @ ID
应该做