假设我必须实现一段必须返回表的T-SQL代码.我可以实现一个表值函数或一个返回一组行的存储过程.我该怎么用?
简而言之,我想知道的是:
哪些是函数和存储过程之间的主要区别?使用其中一个时需要考虑哪些因素?
我需要将二进制文件存储到SQL Server数据库.Varbinary和Image中哪种数据类型更好?
如何使用SQL查询获取MS SQL表的表创建日期?
我在物理上看不到任何表,但我可以查询该特定表.
我有一个查询计算会员在数据库中的结婚日期...
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year]
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
Run Code Online (Sandbox Code Playgroud)
如何在结果集中表示每周的开始和结束时计算出来?
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year],
??? as WeekStart,
??? as WeekEnd
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
Run Code Online (Sandbox Code Playgroud) 我想编写一个脚本来在SQL Server Express中创建admin用户(带abcd密码).另外,我想为此用户分配admin完整权限.
如何将列值从转换varbinary(max)到varchar人类可读的形式?
在Management Studio中,我正在尝试运行查询/在两个链接的服务器之间进行连接.这是使用链接数据库服务器的正确语法:
select foo.id
from databaseserver1.db1.table1 foo,
databaseserver2.db1.table1 bar
where foo.name=bar.name
Run Code Online (Sandbox Code Playgroud)
基本上,您是否只将db服务器名称添加到db.table?
需要更改表以允许列上的空值 - 但不能删除列...我可以这样做吗?正在尝试这样的事情:
ALTER TABLE myTable MODIFY myColumn NULL;
Run Code Online (Sandbox Code Playgroud)
但无济于事....
在过去的任何时候,如果有人问我a的最大尺寸varchar(max),我会说2GB,或者查找一个更确切的数字(2 ^ 31-1,或2147483647).
但是,在最近的一些测试中,我发现varchar(max)变量显然超过了这个大小:
create table T (
Val1 varchar(max) not null
)
go
declare @KMsg varchar(max) = REPLICATE('a',1024);
declare @MMsg varchar(max) = REPLICATE(@KMsg,1024);
declare @GMsg varchar(max) = REPLICATE(@MMsg,1024);
declare @GGMMsg varchar(max) = @GMsg + @GMsg + @MMsg;
select LEN(@GGMMsg)
insert into T(Val1) select @GGMMsg
select LEN(Val1) from T
Run Code Online (Sandbox Code Playgroud)
结果:
(no column name)
2148532224
(1 row(s) affected)
Msg 7119, Level 16, State 1, Line 6
Attempting to grow LOB beyond maximum allowed size of …Run Code Online (Sandbox Code Playgroud) 所以我想做下面的sql代码:
select s.id, s.name,s.city
from stuff s
group by s.name having count(where city and name are identical) > 1
Run Code Online (Sandbox Code Playgroud)
要产生以下内容,(但忽略只有名称或仅匹配城市的地方,它必须在两列上):
id name city
904834 jim London
904835 jim London
90145 Fred Paris
90132 Fred Paris
90133 Fred Paris
Run Code Online (Sandbox Code Playgroud)