小编Luk*_*zda的帖子

是否可以将标准的ado连接字符串传递给Invoke-SqlCmd

是否可以使用如下连接字符串:

Data Source=[server];Initial Catalog=[database];Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
Run Code Online (Sandbox Code Playgroud)

要么:

"Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=[database];Data Source=[server];uid=[username];pwd=[password];Pooling=true;Min Pool Size=10;Max Pool Size=500;Incr Pool Size=5;MultipleActiveResultSets=true;"
Run Code Online (Sandbox Code Playgroud)

Invoke-Sqlcmd

sql-server powershell

5
推荐指数
2
解决办法
2253
查看次数

关于如何在Sql Server中的函数内执行字符串的技巧

过程FunctionX,第345行

在函数中无效使用副作用运算符'EXECUTE STRING'.

我在SQL Server 2012中的函数内执行动态语句时出现上述错误.是否有解决方法?任何招数?

PS:sproc(存储过程)太长了,它的主体不能插入函数内部.

DECLARE @execsql NVARCHAR(2000)
Set @execsql = 'INSERT INTO @TABLE1 EXEC SPROC1 ' + @ID_COMPANY + ',' + @ID_COUNTRY 
exec (@execsql)
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

此外,我还需要能够删除函数内部.我知道这与函数的定义相矛盾,但我想知道是否有一些可以使用的技巧

sql-server procedure function

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

Linq带有可选的WHERE选项

我有一个接受3个参数的.Net函数,都是可选的.像这样的东西:

public List<MyObject> Search(string colour, string size, string name)
{
     var result = (from c in MyTable where .... select c).ToList();     
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,做这where部分的最佳方法是什么.最好是创建动态linq吗?在linq中,具有可选where参数的最佳模式是什么?

所以,在SQL中,这样的事情:

SELECT *
FROM MyTable
WHERE (@colour <> '' AND colour = @colour)
  AND (@size <> '' AND size = @size)
  AND (@name <> '' AND name = @name)
Run Code Online (Sandbox Code Playgroud)

但我希望在linq中有一个更简洁,更可接受的模式.

c# sql linq

5
推荐指数
2
解决办法
2701
查看次数

存储行数和行数以加快分页是不是一个坏主意?

我的网站有超过20.000.000个条目,条目有类别(FK)和标签(M2M).至于查询,即使像SELECT id FROM table ORDER BY id LIMIT 1000000, 10MySQL需要扫描1000010行,但这实在是慢得令人无法接受(而pks,索引,连接等等在这里帮助不大,仍然是1000010行).所以我试图通过使用这样的触发器存储行计数和行号来加速分页:

DELIMITER //
CREATE TRIGGER @trigger_name
AFTER INSERT
ON entry_table FOR EACH ROW
BEGIN
    UPDATE category_table SET row_count = (@rc := row_count + 1)
    WHERE id = NEW.category_id;
    NEW.row_number_in_category = @rc;
END //
Run Code Online (Sandbox Code Playgroud)

然后我可以简单地说:

SELECT * 
FROM entry_table 
WHERE row_number_in_category > 10 
ORDER BY row_number_in_category 
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

(现在只扫描了10行,因此选择速度非常快,虽然插入速度较慢,但​​与选择相比它们很少见,所以没关系)

这是一个糟糕的方法,还有什么好的选择吗?

mysql pagination

5
推荐指数
1
解决办法
200
查看次数

PostgreSQL:选择给定类型的表列

假设我有一个表table1,我可以获得所有列的列表,例如类型double precision

SELECT column_name 
FROM information_schema.columns
WHERE data_type = 'double precision' 
  AND table_name = 'table1';
Run Code Online (Sandbox Code Playgroud)

我怎样才能只选择这些列?

sql postgresql

5
推荐指数
1
解决办法
542
查看次数

BUCKET_COUNT的SQL Server内存中OLTP哈希索引设置值

在内存优化表中创建哈希索引时,我可以设置变量的值 BUCKET_COUNT

CREATE TABLE [Table1] (
[Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY NONCLUSTERED HASH 
                                WITH (BUCKET_COUNT = 1000000),
[Name] NVARCHAR(100) NOT NULL
) 
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
Run Code Online (Sandbox Code Playgroud)

该变量的最佳值是多少?

sql t-sql sql-server sql-server-2014

5
推荐指数
1
解决办法
278
查看次数

MySQL 存储过程返回错误值

我是 MySQL 存储过程的新手,我正在学习如何使用它们的一些教程,但我遇到了以下有趣的事情:

DELIMITER $$
CREATE DEFINER=`user`@`%` PROCEDURE `CalculateScores`(IN ID INT, OUT test INT)
BEGIN
    SELECT COUNT(*)
    INTO test
    FROM myTable
    WHERE id = ID;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

我用这个运行它:

CALL CalculateScores(252, @test);
Run Code Online (Sandbox Code Playgroud)

然后只是:

SELECT @test;
Run Code Online (Sandbox Code Playgroud)

奇怪的是@test返回整个表的总行数,而不仅仅是id作为参数发送的I 。

我在这里缺少什么?本教程从未提及这一点,我无法找到为什么会发生这种情况的答案,我可能不擅长搜索..

mysql sql stored-procedures

5
推荐指数
1
解决办法
703
查看次数

如何在where子句中没有值时执行查询

我有一个查询,根据不同的ID获取结果,我的查询看起来像这样:我已经缩短了查询,仍然,还有两个WHERE In条件.

 SELECT DISTINCT restaurant.*,branch.* 
 from restaurant,branch,restaurant_cuisines,restaurant_collections 
 WHERE restaurant.restaurant_id=branch.restaurant_id 
   AND restaurant_cuisines.cuisine_id IN (2,3) 
   AND restaurant_collections.collection_id IN ();
Run Code Online (Sandbox Code Playgroud)

如果条件中的第二个WHERE中没有值,如何执行此查询?或者如何在应用程序级别(Java)中处理这个问题,我需要编写大约28个if if条件来检查空条件.怎么克服这个?

java mysql

5
推荐指数
2
解决办法
1060
查看次数

为什么SQL Server使用ROUND抛出算术溢出错误?

为什么这么简单

SELECT ROUND(0.99535, 2)
Run Code Online (Sandbox Code Playgroud)

在SQL SERVER 2008 R2中返回算术溢出错误?

sql t-sql sql-server sql-server-2008-r2

5
推荐指数
1
解决办法
300
查看次数

插入 SQL Server 时从另一个表输出字段

我有一个表@p2作为参数发送到一个名为 id 的存储过程IdObjectSubTypeTemp,我需要插入一个表ObjectSubType并输出带有参数表 id 的标识,如下所示:

INSERT INTO [dbo].[ObjectSubType]
    ([IdObject]
    ,[IdSubType])
OUTPUT inserted.[IdObjectSubType] ,OS.[IdObjectSubTypeTemp]
INTO @IdObjectSubTypeTbl
SELECT OS.[IdObject] 
    ,OS.[IdSubType]
FROM @p2 OS
Run Code Online (Sandbox Code Playgroud)

但我不断得到这样的信息:

无法绑定多部分标识符“OS.IdObjectSubTypeTemp”。

虽然我在更新时做了同样的事情并且它正在工作但在插入时它不起作用

sql t-sql sql-server stored-procedures

5
推荐指数
1
解决办法
3046
查看次数