标签: sql-server

外键是否在SQL Server中自动编入索引?

以下SQL语句是否会自动在Table1.Table1Column上创建索引,还是必须显式创建索引?

数据库引擎是SQL Server 2000

       CREATE TABLE [Table1] (
. . .
            CONSTRAINT [FK_Table1_Table2] FOREIGN KEY 
            (
                [Table1Column]
            ) REFERENCES [Table2] (
                [Table2ID]
            )

        )
Run Code Online (Sandbox Code Playgroud)

sql-server indexing foreign-keys

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

将MS Excel数据粘贴到SQL Server

我在Excel中有一堆行要粘贴到MS SQL中的新表中.有一个简单的方法吗?

sql-server excel copy-paste

66
推荐指数
4
解决办法
11万
查看次数

使用T-SQL进行模糊匹配

我有一个表的人与personaldata等.有很多专栏,但这里曾经感兴趣的是:addressindex,lastname以及firstnameaddressindex公寓门口钻一个独特的地址.因此,如果我"喜欢下面"两个人和lastname一个人firstnames相同,他们很可能是重复的.

我需要一种方法来列出这些重复项.

tabledata:

personid     1
firstname    "Carl"
lastname     "Anderson"
addressindex 1

personid     2
firstname    "Carl Peter"
lastname     "Anderson"
addressindex 1
Run Code Online (Sandbox Code Playgroud)

我知道如果我要在所有列上完全匹配,但是我需要模糊匹配来完成这个技巧(来自上面的例子),结果如下:

Row     personid      addressindex     lastname     firstname
1       2             1                Anderson     Carl Peter
2       1             1                Anderson     Carl
.....
Run Code Online (Sandbox Code Playgroud)

关于如何以一种好的方式解决这个问题的任何提示?

t-sql sql-server fuzzy-search

66
推荐指数
5
解决办法
14万
查看次数

我可以在T-SQL中循环表变量吗?

反正是否在T-SQL中循环表变量?

DECLARE @table1 TABLE ( col1 int )  
INSERT into @table1 SELECT col1 FROM table2
Run Code Online (Sandbox Code Playgroud)

我也使用游标,但游标似乎不如表变量灵活.

DECLARE cursor1 CURSOR  
    FOR SELECT col1 FROM table2  
OPEN cursor1  
FETCH NEXT FROM cursor1
Run Code Online (Sandbox Code Playgroud)

我希望能够以与游标相同的方式使用表变量.这样我就可以在过程的一个部分中对表变量执行一些查询,然后为表变量中的每一行执行一些代码.

任何帮助是极大的赞赏.

sql t-sql sql-server cursor table-variable

66
推荐指数
5
解决办法
13万
查看次数

varchar(MAX)总是更好吗?

关于SQL Server,我理解:

  • var 表示内存是惰性分配的,这意味着它完全适合数据(插入时).

  • MAX 意味着没有尺寸限制\限制.

那么,使用MAX时总是优先使用varchar,因为我们无论如何都不分配整个尺寸?

只有在我们想要在此DB列上强制执行约束时,我们才应该使用常量吗?

sql t-sql sql-server

66
推荐指数
4
解决办法
3万
查看次数

特定字符出现在字符串中的次数

是否有MS SQL Server函数计算特定字符在字符串中出现的次数?

sql-server

66
推荐指数
5
解决办法
15万
查看次数

将结果与今天的日期进行比较?

有没有办法Now()在SQL中使用函数来选择具有今天日期的值?

我在印象中Now()会包含时间和日期,但今天的日期会有时间设置00:00:00,因此这永远不会匹配?

sql sql-server current-time

66
推荐指数
5
解决办法
30万
查看次数

Microsoft SQL Server Management Studio打开错误

我安装了SQL Server Management Studio,它工作正常.之后我将Visual Studio从2010更新到2013 Express版,现在它没有使用此错误消息:

找不到一个或多个组件.请重新安装该应用程序

我重新安装了它,但仍然是同样的问题.有什么建议吗?

sql-server visual-studio-2010

66
推荐指数
4
解决办法
8万
查看次数

INSERTing到没有值的表的语法?

我有一个使用以下模式创建的表:

CREATE TABLE [dbo].[Visualizations]
(
    VisualizationID     int identity (1,1)      NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

由于表没有可设置的字段,我不知道如何插入记录.我试过了:

INSERT INTO [Visualizations];
INSERT INTO [Visualizations] () VALUES ();
Run Code Online (Sandbox Code Playgroud)

都没有工作.这样做的正确语法是什么?

编辑:由于很多人似乎对我的表感到困惑,因此它纯粹用于表示多个子表的父级...每个子表都用FK引用这个表,每个FK都是PK,所以在所有子表中在这些表中,ID是唯一的.

sql t-sql sql-server insert

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

将列添加到表,然后在事务内更新它

我正在创建一个将在MS SQL服务器中运行的脚本.此脚本将运行多个语句,并且需要是事务性的,如果其中一个语句失败,则停止整体执行并回滚任何更改.

在发出ALTER TABLE语句以向表中添加列然后更新新添加的列时,我在创建此事务模型时遇到问题.为了立即访问新添加的列,我使用GO命令执行ALTER TABLE语句,然后调用我的UPDATE语句.我面临的问题是我无法在IF语句中发出GO命令.IF语句在我的事务模型中很重要.这是我尝试运行的脚本的示例代码.另请注意,发出GO命令会丢弃@errorCode变量,并且需要在使用之前在代码中声明(这不在下面的代码中).

BEGIN TRANSACTION

DECLARE @errorCode INT
SET @errorCode = @@ERROR

-- **********************************
-- * Settings
-- **********************************
IF @errorCode = 0
BEGIN
 BEGIN TRY
  ALTER TABLE Color ADD [CodeID] [uniqueidentifier] NOT NULL DEFAULT ('{00000000-0000-0000-0000-000000000000}')
  GO
 END TRY
 BEGIN CATCH
  SET @errorCode = @@ERROR
 END CATCH
END

IF @errorCode = 0
BEGIN
 BEGIN TRY
  UPDATE Color
  SET CodeID= 'B6D266DC-B305-4153-A7AB-9109962255FC'
  WHERE [Name] = 'Red'
 END TRY
 BEGIN CATCH
  SET @errorCode = @@ERROR
 END CATCH
END

-- **********************************
-- …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server transactions alter-table

65
推荐指数
3
解决办法
6万
查看次数