标签: sql-server

133
推荐指数
11
解决办法
39万
查看次数

将唯一约束添加到两列的组合

我有一张桌子,不知何故,同一个人Person两次进入我的桌子.现在,主键只是一个自动编号,但还有两个其他字段存在,我想强制它们是唯一的.

例如,字段是:

ID  
Name  
Active  
PersonNumber  
Run Code Online (Sandbox Code Playgroud)

我只想要一个具有唯一PersonNumber且Active = 1的记录.
(因此两个字段的组合必须是唯一的)

SQL服务器中现有表的最佳方法是什么?如果其他人使用与现有值相同的值进行插入,它就会失败,所以我不必在我的应用程序代码中担心这一点.

sql sql-server

133
推荐指数
3
解决办法
15万
查看次数

SQL Server 2008中的CROSS JOIN与INNER JOIN

CROSS JOIN和之间有什么区别INNER JOIN

交叉加入:

SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies
Run Code Online (Sandbox Code Playgroud)

内部联接:

SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID
Run Code Online (Sandbox Code Playgroud)

哪一个更好,为什么我会使用其中一个?

sql t-sql sql-server cross-join sql-server-2008

133
推荐指数
7
解决办法
35万
查看次数

使用查询将数据插入临时表

我有一个输出当前数据的现有查询,我想将它插入Temp表中,但是我遇到了一些问题.有人会对如何做到这一点有所了解吗?

这是一个例子

SELECT *
FROM  (SELECT Received,
              Total,
              Answer,
              ( CASE
                  WHEN application LIKE '%STUFF%' THEN 'MORESTUFF'
                END ) AS application
       FROM   FirstTable
       WHERE  Recieved = 1
              AND application = 'MORESTUFF'
       GROUP  BY CASE
                   WHEN application LIKE '%STUFF%' THEN 'MORESTUFF'
                 END) data
WHERE  application LIKE isNull('%MORESTUFF%', '%') 
Run Code Online (Sandbox Code Playgroud)

这似乎以我需要的方式输出我的数据,但我想把它传递到Temp Table.我的问题是我对SQL查询很新,但却找不到办法.或者,如果它是可能的.如果不可能,有没有更好的方法将我要查找的数据WHERE application LIKE isNull('%MORESTUFF%','%')放入临时表?

任何帮助将非常感激!谢谢!

sql sql-server ssms

133
推荐指数
6
解决办法
62万
查看次数

SQL Server索引 - 升序或降序,它有什么区别?

当您在MS SQL Server(我使用的是版本2005)中的列或列数上创建索引时,您可以指定每列上的索引是升序还是降序.我很难理解为什么这个选择就在这里.使用二进制排序技术,任何一种查找都不会那么快吗?它选择哪个订单有什么区别?

sql sql-server indexing optimization

132
推荐指数
3
解决办法
8万
查看次数

SQL Server Express的限制

我的托管服务提供商(Rackspace)提供安装了SQL Server Web版本()的完全托管的专用服务器.我的公司处理Web开发,并且有大约20多个客户使用ASP.Net + SQL Server 2005.

我正在考虑通过安装免费的SQL Server 2008 Express来降低成本.我知道1GB RAM和4GB /数据库(这是正确的吗?)限制.我想知道的是:

  1. 我可以使用快递版安装的数据库数量是否有任何限制?
  2. 还有其他限制我应该警惕吗?我有点担心必须设置数据库备份 - 使用快速版本可能会困难得多.
  3. 还有其他建议吗?

sql-server sql-server-2008-express

132
推荐指数
3
解决办法
32万
查看次数

如何打开SDF文件(SQL Server Compact Edition)?

我有一个SDF文件,我想检索其架构并使用一些UI查询它.我怎样才能做到这一点?我没有在机器上安装Visual Studio,我想尽可能少地安装软件.

sql-server sql-server-ce

132
推荐指数
3
解决办法
36万
查看次数

SQL Server字符串或二进制数据将被截断

我参与了一个数据迁移项目.当我尝试将数据从一个表插入另一个表(SQL Server 2005)时,我收到以下错误:

消息8152,级别16,状态13,行1
字符串或二进制数据将被截断.

源数据列与数据类型匹配,并且在目标表列的长度定义内,因此我不知道可能导致此错误的原因.

t-sql sql-server migration data-migration sql-server-2005

132
推荐指数
8
解决办法
43万
查看次数

使用c#中的参数调用存储过程

我可以在我的程序中执行删除,插入和更新,并尝试通过从我的数据库中调用创建的存储过程来执行插入操作.

这个按钮插件我工作得很好.

private void btnAdd_Click(object sender, EventArgs e)
{
        SqlConnection con = new SqlConnection(dc.Con);
        SqlCommand cmd = new SqlCommand("Command String", con);

        da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FirstName, @LastName)", con);
        da.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
        da.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;

        con.Open();
        da.InsertCommand.ExecuteNonQuery();
        con.Close();

        dt.Clear();
        da.Fill(dt);
    } 
Run Code Online (Sandbox Code Playgroud)

这是调用名为sp_Add_contact添加联系人的过程的按钮的开始.这两个参数sp_Add_contact(@FirstName,@LastName).我在谷歌搜索了一些很好的例子,但我没有发现任何有趣的东西.

private void button1_Click(object sender, EventArgs e)
{
        SqlConnection con = new SqlConnection(dc.Con);
        SqlCommand cmd = new SqlCommand("Command String", con);
        cmd.CommandType = CommandType.StoredProcedure;

        ???

        con.Open();
        da. ???.ExecuteNonQuery();
        con.Close();

        dt.Clear();
        da.Fill(dt);
    }
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net ado.net stored-procedures

132
推荐指数
3
解决办法
57万
查看次数

如何在SQL Server连接字符串中指定端口号?

我在SQL Server Management Studio中使用以下连接字符串.它无法连接:

mycomputer.test.xxx.com:1234\myInstance1

但是下面的一个是好的:

mycomputer.test.xxx.com\myInstance1

那么如何在连接字符串中指定端口号?

sql-server

131
推荐指数
2
解决办法
20万
查看次数