标签: sql-server

在SQL Server中,如何为给定的表生成CREATE TABLE语句?

我花了很多时间来解决这个问题的解决方案,所以本帖子的精神,我在这里发布,因为我觉得它可能对其他人有用.

如果有人有更好的脚本或任何要添加的内容,请发布.

编辑:是的,我知道如何在Management Studio中执行此操作 - 但我需要能够在另一个应用程序中执行此操作.

sql-server scripting dynamic-sql

73
推荐指数
8
解决办法
10万
查看次数

SET READ_COMMITTED_SNAPSHOT ON需要多长时间?

运行需要多长时间

ALTER DATABASE [MySite] SET READ_COMMITTED_SNAPSHOT ON
Run Code Online (Sandbox Code Playgroud)

我跑了它,花了10分钟.

如何检查是否已应用?

sql-server isolation-level read-committed-snapshot

73
推荐指数
5
解决办法
8万
查看次数

SQL Server中存储过程的上次运行日期

我们开始在应用程序中获得大量存储过程.其中许多是针对自定义报告的,其中许多报告已不再使用.有没有人知道我们可以在SQL Server 2005中的系统视图上运行的查询,它会告诉我们存储过程的最后执行日期?

sql-server

73
推荐指数
5
解决办法
9万
查看次数

SQL Server:表中的最大行数

我开发的软件在其数据库表(SQL Server版本8,9或10)中存储了大量数据.假设每天大约有100,000条记录插入到该表中.这大约是每年3600万条记录.由于担心我会失去性能,我决定每天创建一个新表(一个名称中包含当前日期的表)以降低每个表的记录数.

你能告诉我,这是不是一个好主意?SQL服务器表是否有记录限制?或者您知道在性能显着降低之前可以在表中存储多少条记录(或多或少)?

sql-server database-design

73
推荐指数
7
解决办法
17万
查看次数

如何在C#中为SqlServer转义简单的SQL查询

我使用了一个需要SQL字符串的API.我接受用户输入,将其转义并将其传递给API.用户输入非常简单.它要求列值.像这样:

string name = userInput.Value;
Run Code Online (Sandbox Code Playgroud)

然后我构造一个SQL查询:

string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
                           name.replace("'", "''"));
Run Code Online (Sandbox Code Playgroud)

这样安全吗?如果不是,是否有一个简单的库函数可以使列值安全:

string sql = string.Format("SELECT * FROM SOME_TABLE WHERE Name = '{0}'",
                           SqlSafeColumnValue(name));
Run Code Online (Sandbox Code Playgroud)

API使用SQLServer作为数据库.

c# sql sql-server

73
推荐指数
1
解决办法
6万
查看次数

SQL Server子查询返回了多个值.当子查询遵循=,!=,<,<=,>,> =时,不允许这样做

我运行以下查询:

SELECT 
   orderdetails.sku,
   orderdetails.mf_item_number,
   orderdetails.qty,
   orderdetails.price,
   supplier.supplierid,
   supplier.suppliername,
   supplier.dropshipfees,
   cost = (SELECT supplier_item.price
           FROM   supplier_item,
                  orderdetails,
                  supplier
           WHERE  supplier_item.sku = orderdetails.sku
                  AND supplier_item.supplierid = supplier.supplierid)
FROM   orderdetails,
       supplier,
       group_master
WHERE  invoiceid = '339740'
       AND orderdetails.mfr_id = supplier.supplierid
       AND group_master.sku = orderdetails.sku  
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

消息512,级别16,状态1,行2子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

有任何想法吗?

sql t-sql sql-server

73
推荐指数
8
解决办法
43万
查看次数

73
推荐指数
2
解决办法
19万
查看次数

将MIN聚合函数应用于BIT字段

我想写下面的查询:

SELECT   ..., MIN(SomeBitField), ...
FROM     ...
WHERE    ...
GROUP BY ...
Run Code Online (Sandbox Code Playgroud)

问题是,SQL Server不喜欢它,当我想计算位字段的最小值时它返回错误Operand data type bit is invalid for min operator.

我可以使用以下解决方法:

SELECT   ..., CAST(MIN(CAST(SomeBitField AS INT)) AS BIT), ...
FROM     ...
WHERE    ...
GROUP BY ...
Run Code Online (Sandbox Code Playgroud)

但是,有更优雅的东西吗?(例如,可能存在一个我不知道的聚合函数,它会评估and字段中位值的逻辑.)

sql t-sql sql-server

73
推荐指数
6
解决办法
4万
查看次数

在SQL Server中存储文件

这是我所知道的一个老问题,但是使用SQL Server 2012最终可以将文件存储在数据库中,还是应该将它们保存在文件系统中,只在数据库中引用它们?

如果将它们存储在数据库中这些天被认为是可接受的,那么最有效的方法是什么?我打算应用加密技术,所以我很欣赏处理速度不会太快.

谢谢

sql-server

73
推荐指数
3
解决办法
12万
查看次数

如何仅使用SQL Server中的日期查询DATETIME字段?

简单的问题,但我还是无法解决它...

我有一个带有DATETIME字段的表TEST,如下所示:

ID NAME DATE
1 TESTING 2014-03-19 20:05:20.000
Run Code Online (Sandbox Code Playgroud)

我需要的是下面的查询返回此行和每行的日期= 03/19/2014,无论什么时候是:

select * from test where date = '03/19/2014';
Run Code Online (Sandbox Code Playgroud)

但它不返回任何行.唯一的工作方式是指定时间:

select * from test where date = '03/19/2014 20:03:02.000';
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

sql-server datetime

73
推荐指数
5
解决办法
47万
查看次数