标签: sql-server

我们可以将参数传递给SQL中的视图吗?

我们可以将参数传递给Microsoft SQL Server中的视图吗?

我尝试以create view下列方式,但它不起作用:

create or replace view v_emp(eno number) as select * from emp where emp_id=&eno;
Run Code Online (Sandbox Code Playgroud)

sql sql-server parameters views parameter-passing

119
推荐指数
11
解决办法
29万
查看次数

现实生活中的例子,何时在SQL中使用OUTER/CROSS APPLY

我一直在CROSS / OUTER APPLY和同事一起看,我们正在努力寻找现实生活中使用它们的例子.

我花了很多时间看看我何时应该使用Cross Apply而不是Inner Join?和谷歌搜索但主要(唯一)的例子似乎很奇怪(使用表中的行数来确定从另一个表中选择多少行).

我认为这种情况可能会受益于OUTER APPLY:

联系人表(每个联系人包含1条记录)通讯条目表(每个联系人可以包含n个电话,传真,电子邮件)

但是使用子查询,公共表表达式,OUTER JOINRANK()OUTER APPLY似乎都同样执行.我猜这意味着该方案不适用于APPLY.

请分享一些现实生活中的例子并帮助解释这个功能!

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

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

WHERE子句中的引用别名(在SELECT中计算)

SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE BalanceDue > 0 --error
Run Code Online (Sandbox Code Playgroud)

在WHERE子句中不能使用在所选列列表中设置为变量的计算值"BalanceDue".

它有办法吗?在这个相关的问题中(在Where子句中使用MySQL Select Statment中的变量),似乎答案是,实际上,不,你只需要写出计算(在查询中执行该计算)两次,没有这是令人满意的.

sql t-sql sql-server

119
推荐指数
2
解决办法
12万
查看次数

设计数据库图表或表格不支持后端版本

我正在尝试通过SQL Server Management Studio向新创建的数据库添加一个表.但是我得到错误:

设计数据库图表或表格时不支持后端版本

要查看我在SSMS中单击的当前安装的版本,这就是出现的内容:

在此输入图像描述

这有什么不对?

sql database sql-server ssms

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

将列添加到现有表并对其进行唯一编号

我想在现有的遗留数据库中添加一个列,并编写一个过程,通过该过程我可以为每个记录分配不同的值.像添加列并为其自动生成数据之类的东西.

就像,如果我添加一个名为"ID"(数字)的新列,我想为每个记录初始化一个唯一值.所以,我的ID列将有1到1000的记录.我该怎么做?

sql sql-server

118
推荐指数
4
解决办法
23万
查看次数

如何在SQL表中复制记录但是换出新行的唯一ID?

这个问题接近我的需要,但我的情况略有不同.源表和目标表是相同的,主键是uniqueidentifier(guid).当我尝试这个:

insert into MyTable
    select * from MyTable where uniqueId = @Id;
Run Code Online (Sandbox Code Playgroud)

我显然遇到了主键约束违规,因为我试图复制主键.实际上,我根本不想复制主键.相反,我想创建一个新的.另外,我想有选择地复制某些字段,并将其他字段留空.为了使事情变得更复杂,我需要获取原始记录的主键,并将其插入副本中的另一个字段(PreviousId字段).

我确信有一个简单的解决方案,我只是不知道足够的TSQL知道它是什么.

sql t-sql sql-server sql-server-2005

118
推荐指数
6
解决办法
16万
查看次数

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

SQL Server:对象名称的最大字符长度

SQL Server 2008中对象名称的最大字符长度(例如约束,列)是多少?

t-sql sql-server sql-server-2008

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

使用此查询实现分页(跳过/获取)功能

我一直试图了解如何在SQL中实现自定义分页,例如阅读像这样的文章.

我有以下查询,它完美地工作.但我想用这个实现分页.

SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate
 from dbForumEntry 
 group by PostId ) SubQueryAlias
 order by LastDate desc
Run Code Online (Sandbox Code Playgroud)

我想要的是什么

我有论坛帖子,有相关条目.我想获得最新添加的条目的帖子,所以我可以选择最近辩论的帖子.

现在,我希望能够获得"最近10到20个活跃的帖子",而不是"前10名".

我试过了什么

我试图将ROW函数实现为文章中的那个,但实际上没有运气.

有什么想法如何实现呢?

sql sql-server pagination join

118
推荐指数
4
解决办法
12万
查看次数

不显示列名称

我有一个StudentMarks带有列的表Name, Maths, Science, English.数据就像

Name,  Maths, Science, English  
Tilak, 90,    40,      60  
Raj,   30,    20,      10
Run Code Online (Sandbox Code Playgroud)

我希望得到如下安排:

Name,  Subject,  Marks
Tilak, Maths,    90
Tilak, Science,  40
Tilak, English,  60
Run Code Online (Sandbox Code Playgroud)

使用unpivot,我可以正确获取Name,Marks,但无法将源表中的列名称获取到Subject所需结果集中的列.

我怎样才能做到这一点?

我到目前为止已达到以下查询(获取名称,标记)

select Name, Marks from studentmarks
Unpivot
(
  Marks for details in (Maths, Science, English)

) as UnPvt
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server unpivot sql-server-2008

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