标签: sql-server

如何在SQL Server中删除外键?

我已经通过以下方式创建了一个外键(在SQL Server中):

alter table company add CountryID varchar(3);
alter table company add constraint Company_CountryID_FK foreign key(CountryID) 
references Country;
Run Code Online (Sandbox Code Playgroud)

然后我运行此查询:

alter table company drop column CountryID;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息5074,级别16,状态4,行2
对象'Company_CountryID_FK'依赖于列'CountryID'.
消息4922,级别16,状态9,行2
ALTER TABLE DROP COLUMN CountryID失败,因为一个或多个对象访问此列

我试过这个,但它似乎不起作用:

alter table company drop foreign key Company_CountryID_FK; 
alter table company drop column CountryID;
Run Code Online (Sandbox Code Playgroud)

删除CountryID列需要做什么?

谢谢.

t-sql sql-server

190
推荐指数
5
解决办法
31万
查看次数

如何在不知道其名称的情况下删除SQL默认约束?

在Microsoft SQL Server中,我知道查询是否存在列的默认约束并删除默认约束是:

IF EXISTS(SELECT * FROM sysconstraints
  WHERE id=OBJECT_ID('SomeTable')
  AND COL_NAME(id,colid)='ColName'
  AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)    
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
Run Code Online (Sandbox Code Playgroud)

但由于以前版本的数据库中的拼写错误,约束的名称可能是DF_SomeTable_ColNameDF_SmoeTable_ColName.

如何在没有任何SQL错误的情况下删除默认约束?默认约束名称不会显示在INFORMATION_SCHEMA表中,这会使事情变得有点棘手.

因此,类似于"删除此表/列中的默认约束"或"删除DF_SmoeTable_ColName",但如果无法找到它,则不会出现任何错误.

sql t-sql sql-server

190
推荐指数
5
解决办法
16万
查看次数

如何清除SQL Server查询缓存?

我有一个针对SQL Server 2005运行的简单查询

SELECT * 
FROM Table 
WHERE Col = 'someval'
Run Code Online (Sandbox Code Playgroud)

我第一次执行查询可以采取> 15 secs.后续执行重新进入< 1 sec.

如何让SQL Server 2005不使用任何缓存结果?我试过跑步

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Run Code Online (Sandbox Code Playgroud)

但这似乎对查询速度没有影响(仍然< 1 sec).

sql-server caching

190
推荐指数
5
解决办法
33万
查看次数

LIKE vs SQL Server上的CONTAINS

以下哪个查询更快(LIKE vs CONTAINS)?

SELECT * FROM table WHERE Column LIKE '%test%';
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * FROM table WHERE Contains(Column, "test");
Run Code Online (Sandbox Code Playgroud)

sql-server performance contains sql-like

190
推荐指数
4
解决办法
89万
查看次数

SQL Server动态PIVOT查询?

我的任务是提出翻译以下数据的方法:

date        category        amount
1/1/2012    ABC             1000.00
2/1/2012    DEF             500.00
2/1/2012    GHI             800.00
2/10/2012   DEF             700.00
3/1/2012    ABC             1100.00
Run Code Online (Sandbox Code Playgroud)

进入以下内容:

date        ABC             DEF             GHI
1/1/2012    1000.00
2/1/2012                    500.00
2/1/2012                                    800.00
2/10/2012                   700.00
3/1/2012    1100.00
Run Code Online (Sandbox Code Playgroud)

空白点可以是NULL或空白,也可以是好的,并且类别需要是动态的.另一个可能的警告是,我们将以有限的容量运行查询,这意味着临时表已经出局.我已经尝试过研究并且已经登陆了,PIVOT但是在我真的不理解它之前我从未使用过它,尽管我尽了最大的努力去解决它.谁能指出我正确的方向?

sql t-sql sql-server pivot

190
推荐指数
5
解决办法
20万
查看次数

退出单用户模式

目前,我的数据库处于单用户模式.当我尝试扩展数据库时,我收到一个错误:

无法访问数据库'my_db'.(ObjectExplorer)

此外,当我尝试删除数据库时,我收到错误:

目前无法更改数据库'my_db'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.

如何退出单用户模式?我没有任何用户使用此数据库.

当我尝试使用IIS浏览我的网站时,我得到的错误是:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

我觉得好像单用户模式导致了这种情况.

sql-server sql-server-2008-r2

190
推荐指数
13
解决办法
26万
查看次数

截断SQL Server日志文件的命令是什么?

我需要在发送给同事之前清空LDF文件.如何强制SQL Server截断日志?

sql-server logging truncate

189
推荐指数
4
解决办法
47万
查看次数

SQL Server相当于MySQL的NOW()?

我是一个研究SQL Server项目的MySQL人,试图获取一个datetime字段来显示当前时间.在MySQL中我会使用NOW(),但它不接受.

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Run Code Online (Sandbox Code Playgroud)

sql sql-server

189
推荐指数
4
解决办法
16万
查看次数

在select语句中将Datetime列从UTC转换为本地时间

我正在做一些SQL选择查询,并希望将我的UTC日期时间列转换为本地时间,以便在我的查询结果中显示为本地时间.注意,我不希望通过代码进行此转换,而是在我对数据库进行手动和随机SQL查询时.

sql sql-server

189
推荐指数
11
解决办法
38万
查看次数

NVARCHAR(MAX)的最大字符是多少?

NVARCHAR(MAX)在SQL Server 2008中声明了一个类型的列,它的确切最大字符是什么,其中MAX是长度?

sql-server sql-server-2005 sql-server-2008

189
推荐指数
4
解决办法
24万
查看次数