我正在尝试连接到不在端口1433上的Microsoft SQL 2005服务器.如何使用SQL Management Studio连接到服务器时指示不同的端口号?
在SQL Server 2005中,我有一个表cm_production,其中列出了所有已投入生产的代码.该表有ticket_number,program_type,program_name和push_number以及其他一些列.
目标:按程序类型和推送号计算所有DISTINCT程序名称
到目前为止我所拥有的是:
DECLARE @push_number INT;
SET @push_number = [HERE_ADD_NUMBER];
SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type]
FROM cm_production
WHERE push_number=@push_number
GROUP BY program_type
Run Code Online (Sandbox Code Playgroud)
这让我在那里,但它计算所有的程序名称,而不是不同的程序名称(我不希望它在该查询中做).我想我无法绕过如何告诉它只计算不同的程序名而不选择它们.或者其他的东西.
我正在尝试将基于MySQL的应用程序迁移到Microsoft SQL Server 2005(不是选择,而是生活).
在原始应用程序中,我们几乎完全使用符合ANSI-SQL的语句,但有一个重要的例外 - 我们group_concat
经常使用MySQL的函数.
group_concat
顺便说一下,这样做:给出一张表,比如说,员工姓名和项目......
SELECT empName, projID FROM project_members;
Run Code Online (Sandbox Code Playgroud)
收益:
ANDY | A100
ANDY | B391
ANDY | X010
TOM | A100
TOM | A510
Run Code Online (Sandbox Code Playgroud)
...这是你用group_concat得到的:
SELECT
empName, group_concat(projID SEPARATOR ' / ')
FROM
project_members
GROUP BY
empName;
Run Code Online (Sandbox Code Playgroud)
收益:
ANDY | A100 / B391 / X010
TOM | A100 / A510
Run Code Online (Sandbox Code Playgroud)
所以我想知道的是:是否有可能在SQL Server中编写用户定义的函数来模拟其功能group_concat
?
我几乎没有使用UDF,存储过程或类似的东西的经验,只是直接的SQL,所以请错误地说太多的解释:)
我有这个错误消息:
Msg 8134,Level 16,State 1,Line 1遇到零误差.
编写SQL代码的最佳方法是什么,以便我再也不会看到此错误消息?
我可以做以下任何一种情况:
要么
是使用NULLIF
条款的最佳方式吗?
有没有更好的方法,或者如何实施?
在SQL Server 2005中,使所有字符字段nvarchar(MAX)而不是明确指定长度是否有任何缺点,例如nvarchar(255)?(除了显而易见的一个,你无法限制数据库级别的字段长度)
我有一对夫妇在性C#
这是double
我想将这些存储在SQL Server中的表,但发现没有double
类型,所以什么是最好的使用,decimal
还是float
?
这将存储纬度和经度值,因此我需要最精确的精度.
感谢到目前为止的回复.
我有一个返回行的存储过程:
CREATE PROCEDURE MyProc
AS
BEGIN
SELECT * FROM MyTable
END
Run Code Online (Sandbox Code Playgroud)
我的实际程序有点复杂,这就是为什么有必要使用sproc的原因.
是否可以通过调用此过程来选择输出?
就像是:
SELECT * FROM (EXEC MyProc) AS TEMP
Run Code Online (Sandbox Code Playgroud)
我需要使用SELECT TOP X
,ROW_NUMBER
和一个附加WHERE
子句来分页我的数据,我真的不想将这些值作为参数传递.
如何设置动态变量来设置SQL Server中要返回的行数?以下是SQL Server 2005+中无效的语法:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Run Code Online (Sandbox Code Playgroud) 我想重命名数据库,但不断收到数据库上"无法获得独占锁定"的错误,这意味着仍有一些连接处于活动状态.
如何杀死数据库的所有连接以便我可以重命名它?
有没有什么方法可以通过删除所有表并删除一个SQL语句中的存储过程,触发器,约束和所有依赖项来清理SQl Server 2005中的数据库?
请求的理由:
我希望有一个数据库脚本来清理未使用的现有数据库,而不是创建新数据库,特别是当您必须向数据库管理员发出请求并等待一段时间才能完成时!