GVKun编程网logo

SQL Server-具有声明的变量的In子句(sql server 声明变量)

12

对于SQLServer-具有声明的变量的In子句感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解sqlserver声明变量,并且为您提供关于asp.net–按IN子句排序SQLServer结

对于SQL Server-具有声明的变量的In子句感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解sql server 声明变量,并且为您提供关于asp.net – 按IN子句排序SQL Server结果、C# 中的 SQL 参数化,使用 SQL 声明的变量、MS sqlserver中的变量 表变量问题--解决办法、PHP----$_SERVER---相关的变量的意义的宝贵知识。

本文目录一览:

SQL Server-具有声明的变量的In子句(sql server 声明变量)

SQL Server-具有声明的变量的In子句(sql server 声明变量)

可以说我得到了以下内容:

DECLARE @ExcludedList VARCHAR(MAX)

SET @ExcludedList = 3 + ',' + 4 + ',' + '22'

SELECT * FROM A WHERE Id NOT IN (@ExcludedList)

错误:将varchar值’,’转换为数据类型int时转换失败。

我了解为什么会出现错误,但我不知道如何解决…

asp.net – 按IN子句排序SQL Server结果

asp.net – 按IN子句排序SQL Server结果

我有一个使用IN子句的存储过程.在我的ASP.NET应用程序中,我有一个多行文本框,它为存储过程提供值.我希望能够按照在文本框中输入的值进行排序.我在MysqL中找到了如何轻松地做到这一点(使用FIELD函数),但不是sql Server等价物.

所以我的查询看起来像:

Select * from myTable where item in @item

所以我会从我的应用程序传递值,如’113113′,’112112′,’114114′(以任意顺序).我想按列表订购结果.

CASE声明是否可行?我不知道文本框数据中有多少项目.

解决方法

你如何参数化IN条款?

当你在sql Server 2008上时,我会传入一个带有两列item和sort_order的Table Valued Parameter,然后加入它.然后你可以在末尾添加一个ORDER BY sort_order.

C# 中的 SQL 参数化,使用 SQL 声明的变量

C# 中的 SQL 参数化,使用 SQL 声明的变量

如何解决C# 中的 SQL 参数化,使用 SQL 声明的变量?

我有以下从 C# 程序发送的 sql 查询:

DECLARE @id as int
SELECT @id = max(fault_catagory_ident) FROM fault_catagory_list
INSERT INTO fault_catagory_list (fault_catagory_ident,fault_catagory)
VALUES (@id + 1,''TEST'')
SELECT @id + 1

''fault_catagory'' 值来自我的程序,但 ident 值需要是数据库中现有表中的下一个数字(主键)。我的 C# 代码正在参数化安全值。

我有两个问题:

  1. 如何将 @id + 1 值返回给我的程序(executeNonQuery 不返回任何内容)?
  2. 如何将 @id 作为插入命令的参数化值?

我想知道我的主键是否可以以某种方式自动化?

我想在一个查询中执行所有这些操作,因为存在多次登录运行同一查询的风险。如果任何一个同时运行,@id 值可能会重复,一个会失败。

如果这里没有足够的信息,我很抱歉,我正在学习曲线上!

任何建议将不胜感激。提前致谢。

解决方法

我认为您会在 MSDN 中提供的这个示例中找到您需要的一切: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.executescalar?view=dotnet-plat-ext-5.0

简而言之:

  1. 要从查询中返回单个参数,请使用 ExecuteScalar()
  2. 参数通过 System.Data.SqlClient 中提供的 SqlCommand 类添加到查询中。

干杯!

,

感谢您的建议,我想我已经找到了解决方案... 首先,我需要使用 IDENTITY 约束重新创建带有主键列的表(现在我知道它存在,使用它是有意义的!)。在这里找到了指南(尽管这意味着要重建一些主键/外键链接)https://www.datameer.com/blog/how-to-add-an-identity-to-an-existing-column-in-sql/

然后在C#程序中,使用SqlCommand.executeScalar返回标识值

Int identReturn = 0;
identReturn = (Int32)cmd.ExecuteScalar();

再次感谢您的回复。

,

虽然我不同意您为插入的行选择标识行值的逻辑,但您当然可以在 SQL 表定义中使用 IDENTITY() 列属性来实现这一点。

如果您的 SQL 命令中有多个 SELECT, 每次在 sql 命令中使用 SELECT 时,都会将一个新表添加到传入数据适配器的数据集中。

string sql = "
   DECLARE @id as int
   SELECT @id = max(fault_catagory_ident) FROM fault_catagory_list
   INSERT INTO fault_catagory_list (fault_catagory_ident,fault_catagory)
   VALUES (@id + 1,''TEST'')
   SELECT @id + 1";
SqlCommand cmd = new SqlCommand(sql,conn); // assuming you already set connection
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();

da.Fill(ds);

Console.WriteLine( ds.Tables[0].Rows[0][0]);  // this will print @id
Console.WriteLine( ds.Tables[1].Rows[0][0]);  // this will print @id + 1

MS sqlserver中的变量 表变量问题--解决办法

MS sqlserver中的变量 表变量问题--解决办法

//解决办法 临时表

 

表变量与其他变量相同,只在其作用域中有效,   

  
exec ()执行的sql已是另一个会话了,变量无法传递的   

    

  可以用临时表解决   

    

  
create     proc    test   

  
as    

  
declare     @strsql     varchar ( 300 )   

  
create     table    #tblTmp   ( [ ID ]     int , [ name ]     varchar ( 20 ))   

    

  
set     @strsql     =    " insert     into    #tblTmp    select    ID,name    from    tbl"   

  
exec ( @strsql )   

    

  
GO

 

//第二中解决办法

 

问题描述:

在存储过程中我定义了两个参数,
@Filed代表一个列 , @TableName代表表名 ,一个变量 @sqlStr代表sql语句 ,

以下语句:
SELECT   @sqlStr = SELECT   TOP   1   @Field   FROM   @TableName

EXEC ( @sqlStr )

这两句都û问题,但是如何把查询出来的结果赋值到一个变量中(如变量
@tmpStr )?

直接用如下语句则语法检查时会报错,说须先定义变量
@TableName ,但是我已经定义了啊:

SELECT   TOP   1   @tmpStr = @Field   FROM   @TableName

解决方案:
declare   @sql   nvarchar ( 4000 )

set   @sql = N ' SELECT TOP 1 @tmpStr= ' + @Field + '  FROM  ' + @TableName

exec  sp_executesql  @sql ,N ' @tmpStr 类型 out ' , @tmpStr  out

 

//第三种解决办法

 

可以这样: 

delcare @sqlstr varchar(
8000

declare @i 
int  

while  (@i > 0

begin 

set  @sqlstr  =   ' CREATE TABLE TABLE_ ' + cast(@I  as  varchar) + ' (...) '  

exec(@sqlstr) 

set  @i = @i - 1  

end

PHP----$_SERVER---相关的变量的意义

PHP----$_SERVER---相关的变量的意义

这些也是在网上找的希望对你有帮助
登录后复制
登录后复制
$_SERVER[''REMOTE_PORT''] //端口。 
$_SERVER[''SERVER_NAME''] //服务器主机的名称。 
$_SERVER[''PHP_SELF'']//正在执行脚本的文件名 
$_SERVER[''argv''] //传递给该脚本的参数。 
$_SERVER[''argc''] //传递给程序的命令行参数的个数。 
$_SERVER[''GATEWAY_INTERFACE'']//CGI 规范的版本。 
$_SERVER[''SERVER_SOFTWARE''] //服务器标识的字串 
$_SERVER[''SERVER_PROTOCOL''] //请求页面时通信协议的名称和版本 
$_SERVER[''REQUEST_METHOD'']//访问页面时的请求方法 
$_SERVER[''QUERY_STRING''] //查询(query)的字符串。 
$_SERVER[''DOCUMENT_ROOT''] //当前运行脚本所在的文档根目录 
$_SERVER[''HTTP_ACCEPT''] //当前请求的 Accept: 头部的内容。 
$_SERVER[''HTTP_ACCEPT_CHARSET''] //当前请求的 Accept-Charset: 头部的内容。 
$_SERVER[''HTTP_ACCEPT_ENCODING''] //当前请求的 Accept-Encoding: 头部的内容 
$_SERVER[''HTTP_CONNECTION''] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。 
$_SERVER[''HTTP_HOST''] //当前请求的 Host: 头部的内容。 
$_SERVER[''HTTP_REFERER''] //链接到当前页面的前一页面的 URL 地址。 
$_SERVER[''HTTP_USER_AGENT''] //当前请求的 User_Agent: 头部的内容。 
$_SERVER[''HTTPS'']//如果通过https访问,则被设为一个非空的值(on),否则返回off 
$_SERVER[''SCRIPT_FILENAME''] #当前执行脚本的绝对路径名。 
$_SERVER[''SERVER_ADMIN''] #管理员信息 
$_SERVER[''SERVER_PORT''] #服务器所使用的端口 
$_SERVER[''SERVER_SIGNATURE''] #包含服务器版本和虚拟主机名的字符串。 
$_SERVER[''PATH_TRANSLATED''] #当前脚本所在文件系统(不是文档根目录)的基本路径。 
$_SERVER[''SCRIPT_NAME''] #包含当前脚本的路径。这在页面需要指向自己时非常有用。 
$_SERVER[''PHP_AUTH_USER''] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。 
$_SERVER[''PHP_AUTH_PW''] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。 
$_SERVER[''AUTH_TYPE''] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型
登录后复制

以上就介绍了PHP----$_SERVER---相关的变量的意义,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

今天关于SQL Server-具有声明的变量的In子句sql server 声明变量的分享就到这里,希望大家有所收获,若想了解更多关于asp.net – 按IN子句排序SQL Server结果、C# 中的 SQL 参数化,使用 SQL 声明的变量、MS sqlserver中的变量 表变量问题--解决办法、PHP----$_SERVER---相关的变量的意义等相关知识,可以在本站进行查询。

本文标签: