我已经通过以下方式创建了一个外键(在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列需要做什么?
谢谢.
在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_ColName或DF_SmoeTable_ColName.
如何在没有任何SQL错误的情况下删除默认约束?默认约束名称不会显示在INFORMATION_SCHEMA表中,这会使事情变得有点棘手.
因此,类似于"删除此表/列中的默认约束"或"删除DF_SmoeTable_ColName",但如果无法找到它,则不会出现任何错误.
我有一个针对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).
以下哪个查询更快(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) 我的任务是提出翻译以下数据的方法:
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但是在我真的不理解它之前我从未使用过它,尽管我尽了最大的努力去解决它.谁能指出我正确的方向?
目前,我的数据库处于单用户模式.当我尝试扩展数据库时,我收到一个错误:
无法访问数据库'my_db'.(ObjectExplorer)
此外,当我尝试删除数据库时,我收到错误:
目前无法更改数据库'my_db'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.
如何退出单用户模式?我没有任何用户使用此数据库.
当我尝试使用IIS浏览我的网站时,我得到的错误是:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
我觉得好像单用户模式导致了这种情况.
我需要在发送给同事之前清空LDF文件.如何强制SQL Server截断日志?
我是一个研究SQL Server项目的MySQL人,试图获取一个datetime字段来显示当前时间.在MySQL中我会使用NOW(),但它不接受.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Run Code Online (Sandbox Code Playgroud) 我正在做一些SQL选择查询,并希望将我的UTC日期时间列转换为本地时间,以便在我的查询结果中显示为本地时间.注意,我不希望通过代码进行此转换,而是在我对数据库进行手动和随机SQL查询时.
我NVARCHAR(MAX)在SQL Server 2008中声明了一个类型的列,它的确切最大字符是什么,其中MAX是长度?
sql-server ×10
sql ×4
t-sql ×3
caching ×1
contains ×1
logging ×1
performance ×1
pivot ×1
sql-like ×1
truncate ×1