标签: sql-server-2005

SQL Server:你为什么要在运算符的左侧进行转换?

我正在使用SQL Server 2005.

我正在和我的一个朋友一起编写代码,仅举一个例子,我去了左侧的联接.

JOIN t on cast(a.foo as int) = b.foo
Run Code Online (Sandbox Code Playgroud)

他告诉我永远不要这样做,因为我失去了索引的所有性能优势.

你为什么要故意这样做?

sql t-sql casting join sql-server-2005

0
推荐指数
1
解决办法
1001
查看次数

SQL查询'where'不能正常工作

我是脚本和SQL的新手,我继承了一些联系人管理软件生成的疯狂数据库.我正在运行Microsoft SQL Server 2005.我要做的是选择满足特定条件的行(最重要的是BIRTHDATE是今天的日期,这似乎可能是我的问题).这是我的代码:

SELECT 
  TBL_CONTACT.BIRTHDATE, 
  TBL_CONTACT.COMPANYNAME, 
  TBL_CONTACT.CATEGORY, 
  CUST_ContactTable1_074000.CUST_DesignatedAgent_074203199, 
  TBL_EMAIL.ADDRESS 
FROM 
  TBL_CONTACT, 
  CUST_ContactTable1_074000,
  TBL_EMAIL
WHERE 
  TBL_CONTACT.BIRTHDATE >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) AND 
  TBL_CONTACT.BIRTHDATE < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) AND 
  TBL_CONTACT.CATEGORY = 'Active' AND TBL_EMAIL.ADDRESS IS NOT NULL AND 
  CUST_ContactTable1_074000.CUST_DesignatedAgent_074203199 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

问题是它返回了我的数据库中的所有行(减去不符合NOT NULL和CATEGORY ='Active'条件的记录,它出现了),即使只有一行具有正确的TBL_CONTACT.BIRTHDATE.它是唯一一行应该在整个列表中工作的BIRTHDATE,即使这些行应该是BIRTHDATE不是今天的日期.如果我这么做就没有今天的BIRTHDATE匹配,那么就不会有任何回报(这是我所期待的).

我究竟做错了什么?我正在学习,请解释你的答案.谢谢!

sql sql-server-2005

0
推荐指数
1
解决办法
91
查看次数

将图像存储在数据库中并检索它

我在数据库中插入图像的代码如下:

MemoryStream ms =new MemoryStream();
byte[] PhotoByte=null;
PhotoByte=ms.ToArray();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
PhotoByte =ms.ToArray();
Str = "insert into Experimmm Values('" + PhotoByte + "','" + textBox1.Text + "')";
Conn.Open();
cmd.Connection = Conn;
cmd.CommandText = Str;
cmd.ExecuteNonQuery();
Conn.Close();
Run Code Online (Sandbox Code Playgroud)

哪个进展顺利.我可以在ma数据库表中看到二进制数据,比如<Binary Data> 我的代码检索数据是:

Str ="select * from Experimmm where id = '" +textBox2.Text + "'";
Conn.Open();
cmd.Connection = Conn;
cmd.CommandText = Str;
dr = cmd.ExecuteReader();
if (dr.Read())
{ label1.Text = dr.GetValue(1).ToString();
byte[] PhotoByte = (byte[])dr.GetValue(0);
MemoryStream mem = new MemoryStream(PhotoByte, 0, PhotoByte.Length);
//but an …
Run Code Online (Sandbox Code Playgroud)

c# sql-server-2005 visual-studio-2010

0
推荐指数
1
解决办法
1万
查看次数

TSQL - 从ResultSet中删除重复项并将它们组合在一行中

我有一个名为employee的表,其中包含以下字段

Id | Name     | PrimaryEmail1  | PrimaryEmail2 | PrimaryEmail3
1  | JonSkeet | NULL           | NULL          | jonskeet@test.com
1  | JonSkeet | NULL           | Jon@test.com  | jonskeet@test.com
1  | JonSkeet | skeet@test.com | NULL          | jonskeet@test.com
2  | George   | G1@Test.com    | NULL          | NULL
2  | George   | NULL           | G2@test.com   | NULL
2  | George   | NULL           | NULL          | G3@test.com

如何编写TSQL查询以便我可以获得以下结果集?

Id | Name     | PrimaryEmail1  | PrimaryEmail2 | PrimaryEmail3
1  | JonSkeet | …

t-sql sql-server-2005

0
推荐指数
1
解决办法
360
查看次数

SQL查询帮助必需

我有以下查询来获取前45天的数据

SELECT evening + morning + calve_milk AS Total_Today, 
       CONVERT (VARCHAR(6), m_date, 6) AS Date 
FROM Status 
WHERE (m_date < (SELECT MAX(m_date) AS Expr1 FROM Status AS Status_2))
   AND (m_date > (SELECT MAX(m_date) AS Expr1 FROM Status AS Status_1) - 45) 
   AND (animal_code = @animal_code) 
GROUP BY evening + morning + calve_milk, m_date 
ORDER BY m_date
Run Code Online (Sandbox Code Playgroud)

当检索数据时,日期列看起来像这样

Jan 01
Jan 02
Jan 03
Jan 04
ans so on till the jan ends
Feb 01
Feb 02
Feb 03
Run Code Online (Sandbox Code Playgroud)

我的问题是,这可能会跳过重复的JAN和FEB,每个日期和日期应该是这样的

Jan …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

0
推荐指数
1
解决办法
57
查看次数

如何将我的Web应用程序连接到SQL Server/SQL Server Express

我正在使用连接到SQL Server数据库的Web应用程序:

jdbc.url=jdbc:jtds:sqlserver://127.0.0.1/MyDatabase
jdbc.username=sa
jdbc.password=password
Run Code Online (Sandbox Code Playgroud)

我是SQL Server的新手,但是我已经SQLEXPRESS通过SQL Server Management Studio 成功访问了一个实例.

我可以从Security-> Login文件夹中看到有一个"sa"条目

但是,当我运行Web应用程序时,我收到此错误:

PropertyAccessException 1:org.springframework.beans.MethodInvocationException:属性'dataSource'抛出异常; 嵌套异常是org.apache.commons.dbcp.SQLNestedException:无法创建PoolableConnectionFactory(网络错误IOException:连接被拒绝:连接)

我似乎用户:"sa"未经过身份验证访问数据库?

如果是这样,我如何使用SQL Server管理工作室来解决这个问题?

java sql-server sql-server-2005 jdbc

0
推荐指数
1
解决办法
6230
查看次数

如何选择在字段的确切位置具有特定值的记录?

如何在字段DESC的位置37中选择值为"OE"的记录?

我可以使用这个声明找到所需的记录 -

select DESC
from   TABLEA
where  DESC like '%OE%'
Run Code Online (Sandbox Code Playgroud)

但它也将返回记录,其中OE位于DESC内的其他位置.这会产生不正确的结果.

我正在使用MS SQL 2005.

sql t-sql sql-server sql-server-2005

0
推荐指数
1
解决办法
69
查看次数

检查SqlDataReader列是否具有空值时出错

当代码尝试验证SqlDataReader是否在列中返回空值时,与我一起处理项目的人之一不断收到错误.他运行这段代码:

if (!DB_Conn.isConnected()) DB_Conn.Connect();
using (SqlDataReader dr = DB_Conn.QueryDB(query))
{
   if (dr.HasRows && !dr.IsDBNull(0))
   {
       maxID = dr.GetInt32(0);
   }
}
Run Code Online (Sandbox Code Playgroud)

但是当在!dr.IsDBNull(0)命令中没有数据时,会得到一个错误,它是一个无效的attemtp.

如果我运行相同的代码,但我查询不同的表,它的工作原理.

此外,我运行两个查询,他们返回预期的空值.查询是:

SELECT MAX(ID) FROM Loan;
SELECT MAX(ID) FROM InternationalSwap;
Run Code Online (Sandbox Code Playgroud)

我不认为查询对我们在一台机器而不是另一台机器上出现此错误的原因有任何影响.

c# sql-server asp.net sql-server-2005 sql-server-2008

0
推荐指数
1
解决办法
1480
查看次数

汇编DBDataContext,我是新的

我偷看了我同学的计算机程序,我看到了这个:

DBDataContext db = new DBDataContext();
Run Code Online (Sandbox Code Playgroud)

我尝试相同,但我的程序报告说没有DBDataContext,我现在需要参考什么组件?

c# asp.net-mvc sql-server-2005

0
推荐指数
1
解决办法
1218
查看次数

如何生成id为每个插入时递增的列

这是我的表格,我希望我的PNRNo为第一个条目生成'PNRRES001',连续条目为'PNRRES002','PNRRES002'等等.因此,在创建表时,我只调用该列来生成PNR否,用户只需从前端输入CustomerNo,PNR和Customer No的数据将更新为PNRDetails表.

CREATE TABLE PNRDetails(PNRNo AS (DBO.FuncIncPNR()) ,customerNo INT

--FUNCTION TO GENERATE THE PNR NUMBER
ALTER FUNCTION dbo.FuncIncPNR()
RETURNS VARCHAR(20)
AS 
BEGIN
DECLARE @RR VARCHAR(20) SET @RR='PNRRESA001'
--here i have checked if no value is there then return the first value as 'PNRRESA001'
    IF((SELECT COUNT(*)FROM PNRDetails)=0)
    BEGIN
    RETURN @RR
    END
    ELSE
-- if any value is there then take the last value and add 1 to it and update to the table
    BEGIN
    DECLARE @pnr VARCHAR(20),@S1 VARCHAR(20),@S2 INT
    DECLARE PNRCursor …
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net ado.net sql-server-2005 sql-server-2008

0
推荐指数
2
解决办法
783
查看次数