我有一个MS SQL Server 2005数据库.在一些过程中,我将表参数作为nvarchar(以逗号分隔)传递给存储过程,并在内部划分为单个值.我将它添加到SQL命令参数列表中,如下所示:
cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo";
Run Code Online (Sandbox Code Playgroud)
我必须将数据库迁移到SQL Server 2008.我知道有表值参数,我知道如何在存储过程中使用它们.但我不知道如何将一个传递给SQL命令中的参数列表.有谁知道Parameters.Add程序的正确语法?或者是否有另一种传递此参数的方法?
c# sql-server stored-procedures sqlcommand table-valued-parameters
我从SQL Server中删除了一个数据库,但事实证明我的登录设置为使用已删除的数据库作为其默认值.我可以使用连接对话框中的"选项"按钮连接到SQL Server Management Studio,并选择"master"作为要连接的数据库.但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败.
有没有人知道如何在不使用object explorer的情况下设置我的默认数据库?
你怎么能删除字符串中不是字母的所有字符?
那么非字母数字呢?
这是必须是自定义功能还是还有更通用的解决方案?
sql-server parsing alphanumeric user-defined-functions alphabetic
我需要在SQL Server中实现以下查询:
select *
from table1
WHERE (CM_PLAN_ID,Individual_ID)
IN
(
Select CM_PLAN_ID, Individual_ID
From CRM_VCM_CURRENT_LEAD_STATUS
Where Lead_Key = :_Lead_Key
)
Run Code Online (Sandbox Code Playgroud)
但WHERE..IN子句只允许1列.如何将2个或更多列与另一个内部SELECT进行比较?
在PostgreSQL中,有一些Limit和Offset关键字可以很容易地对结果集进行分页.
Sql Server的等效语法是什么?
如何对数据库执行插入并使用Dapper返回插入的标识?
我尝试过这样的事情:
string sql = "DECLARE @ID int; " +
"INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff); " +
"SELECT @ID = SCOPE_IDENTITY()";
var id = connection.Query<int>(sql, new { Stuff = mystuff}).First();
Run Code Online (Sandbox Code Playgroud)
但它没有用.
@Marc Gravell谢谢你的回复.我已经尝试过你的解决方案但是,下面仍有相同的异常跟踪
System.InvalidCastException: Specified cast is not valid
at Dapper.SqlMapper.<QueryInternal>d__a`1.MoveNext() in (snip)\Dapper\SqlMapper.cs:line 610
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in (snip)\Dapper\SqlMapper.cs:line 538
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param) in (snip)\Dapper\SqlMapper.cs:line 456
Run Code Online (Sandbox Code Playgroud) 我有一个Test带有列的表的MS SQL 2005数据库ID.ID是一个标识列.
我在这个表中有行,并且所有行都有相应的ID自动增量值.
现在我想更改此表中的每个ID,如下所示:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到一个错误:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
我试过这个:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但这并没有解决问题.
我需要将标识设置为此列,但我还需要不时更改值.所以我的问题是如何完成这项任务.
t-sql sql-server identity sql-server-2005 sql-server-2005-express
如何使用SQL Server Management Studio创建复合键?
我想要两个INT列来形成表的标识(唯一)
是否有一些标准的方法来为SQL Server命名索引?似乎主键索引名为PK_,非聚簇索引通常以IX_开头.除了唯一索引之外,是否还有任何命名约定?
可能重复:
SQL Server:检查表是否存在
CREATE TABLE IF NOT EXISTS适用于mysql但SQL Server 2008 R2失败.什么是等效语法?
sql-server ×10
sql ×3
c# ×2
ssms ×2
t-sql ×2
alphabetic ×1
alphanumeric ×1
dapper ×1
identity ×1
indexing ×1
key ×1
limit ×1
offset ×1
parsing ×1
sqlcommand ×1