小编Pon*_*ife的帖子

附加.mdf文件时,数据库"无法打开,因为它是版本661"

我试图将MvcMusicStore.mdf附加到sql server 2008 R2管理工作室中的.\ SQLEXPRESS实例(sql server版本10.0.2531).我从这个项目获得了数据库:http: //mvcsitemap.codeplex.com/releases/view/67151

当我想要附加时我收到错误?:

The database 'C:\PROJECTS\CODEPLEX\TFS10\MVCSITEMAP\BRANCHES\3.1.0\SRC\MVCSITEMAPPROVIDER\MVCMUSICSTORE\APP_DATA\MVCMUSICSTORE.MDF' cannot be opened because it is version 661. This server supports version 655 and earlier. A downgrade path is not supported.
Run Code Online (Sandbox Code Playgroud)

我需要升级我的sql server还是其他什么?

sql-server-2008-r2 asp.net-mvc-3

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

插入后如何获取新行的GUID值?

我想在Sqlserver中获取新插入记录的Id.我已经检查了Scope_Identity()但据说这会返回自动增量列的值.我用于Id的专栏是Guid.插入后我想要这个Guid列值.应该如何实现?或者我必须编写一个自定义繁琐的函数来获取新插入记录的Id.

c# sql sql-server asp.net

4
推荐指数
1
解决办法
2188
查看次数

如何在OPENROWSET(BULK ...)中动态指定文件的路径?

我想将图像插入到Image字段中,最好使用一个存储过程来接受图像的路径.在黑客入侵后我想出了这个;

-- functional
DECLARE @parameters nvarchar(max) = '';
DECLARE @sql_string nvarchar(max) = 
N'UPDATE MyTable
  SET MyImageField = (SELECT BulkColumn 
                      FROM Openrowset(Bulk ''' + @PathToMyImage + ''', Single_Blob) ImageData)
  WHERE MyPrimaryKey = ' + CAST(@PrimaryKey AS NVARCHAR(max));

EXECUTE sp_executesql @sql_string,  @parameters
Run Code Online (Sandbox Code Playgroud)

我这样做是因为当我尝试时;

--Not functional
INSERT INTO MyTable (MyImageField) 
VALUES ((SELECT BulkColumn 
         FROM Openrowset(Bulk @PathToMyImage, Single_Blob) ImageData));
Run Code Online (Sandbox Code Playgroud)

SQL Server抛出一个错误,抱怨Bulk期望一个字符串.我宁愿不必使用sp_executesql来实现可维护性/可读性,还有更好的方法吗?

t-sql sql-server bulkinsert

4
推荐指数
1
解决办法
8949
查看次数

切换数据分区时出现"无相同索引"错误

我正在尝试设置一个数据仓库应用程序,以便我的公司使用分区数据导入表.我试图删除旧数据并为新数据腾出空间.这是我收到此错误消息的地方:

Msg 4947, Level 16, State 1, Line 1 ALTER TABLE SWITCH statement failed. There is no identical index in source table 'AssetServer.dbo.IISLog061122' for the index 'IDX_IISLogPartitioned_IP' in target table 'AssetServer.dbo.IISLogPartitioned' . 
Run Code Online (Sandbox Code Playgroud)

以下是它需要复制的索引的定义

/******对象:索引[IDX_IISLogPartitioned_IP]脚本日期:07/01/2009 10:44:45******/

CREATE NONCLUSTERED INDEX [IDX_IISLogPartitioned_IP] ON [dbo].[IISLogPartitioned] ( 
[c-ip] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
Run Code Online (Sandbox Code Playgroud)

在下面你会看到我在存储过程中创建了一个相同的索引.我已经验证它已成功创建,但alter table语句失败并显示上述消息.存储过程的主循环归结为:

ALTER PARTITION FUNCTION fnIISLogRequestTime() SPLIT RANGE ('20090612 01:59:59:000');

CREATE …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

3
推荐指数
1
解决办法
5050
查看次数

确定点之间的基本(罗盘)方向

有没有办法在 SQL Server 2008R2 中知道一个点是否在另一点的南、东等?

例如,我有一个原点point(lat1,lng1),我想知道point(lat2,lng2)该原点的位置:北、西等...

我正在尝试构建一个风玫瑰图,这可能对我有用。

geometry geography sql-server-2008

3
推荐指数
1
解决办法
5181
查看次数

MDX的智能感知?

我开始学习MDX和OLAP数据库,并想知道SSMS的扩展是否有人知道如何帮助编写MDX.由于我的右手受到一些神经损伤,我最右边的两根手指不断地击打所有的支架.我正在学习能够识别测量组和尺寸名称并自动将它们包裹在brakcets中的东西.

sql-server olap mdx sql-server-2008

3
推荐指数
1
解决办法
900
查看次数

对于从另一个CTE返回的每一行,在CTE内调用用户定义的函数

我有一个CTE返回多行的查询,我想为返回的每一行执行一个函数.有可能,我在google上查了一下,它说使用临时表来填充结果.我只是想确认一下

with job_list as (  select JOB_ID,CREATED_DATE from job_table)  ,
app_list as (select APP_ID from job_list jobs, dbo.fnGetApp(jobs.JOB_ID,9))
select * from job_list, app_list 
Run Code Online (Sandbox Code Playgroud)

这不是确切的查询,我已经简化了解我面临的问题.

dbo.fnGetApp是一个函数,它接受两个参数varchar和int并返回一个列的表(varchar APP_ID)

错误 - 无法绑定多部分标识符"jobs.JOB_ID".

我想为job_listCTE 返回的每一行运行该函数,并将结果用作CTE另一个使用两者的查询CTEs

谢谢大卫

t-sql sql-server-2008

2
推荐指数
1
解决办法
2299
查看次数

如何从.sql文件创建多个存储过程

我有大约100个存储过程文件,我想添加到我创建的新数据库.有什么方法可以将它们放在一个文件夹中导入它们吗?当我尝试使用Windows资源管理器时,它只是在查询窗口中打开它们.

我正在使用SQL Server Management Studio.

sql sql-server

2
推荐指数
1
解决办法
5691
查看次数

如果一行受到影响,如何执行UPDATE?

我在SQL Server中有一个表,其中有一个PK(ID)和另一个(逻辑)主键由其他几列(尽管没有UNIQUE约束).比方说,表PERSON,PK = PERSON_ID,然后NAME,SURNAME,AGE

我想有可能说

UPDATE PERSON SET AGE = 43 WHERE NAME = 'XX' AND SURNAME = 'YYY'
Run Code Online (Sandbox Code Playgroud)

并且只有在'updated rows'= 1时执行它,否则(超过1行)执行完全没有执行.问题是我不确定NAME和SURNAME是否唯一地标识了一条记录,我无法先验地说出来.

想法?

t-sql sql-server

2
推荐指数
4
解决办法
4809
查看次数

备份数据库时出现OS错误3

这是我在同一论坛上的上一个问题的后续问题.

我想备份我的SQL Server数据库.以下是C#中备份的代码.

userConn = new SqlConnection(userdatabase);
userConn.Open();

string UserString;

UserString = "BACKUP DATABASE @DBName TO  DISK = @FilePath";

String destPath = DestDirectory + "\\UserDataTable.bak";
SqlCommand cmd = new SqlCommand(UserString, userConn);

cmd.Parameters.AddWithValue("@dbName", userConn.Database);
cmd.Parameters.AddWithValue("@FilePath", destPath);

cmd.ExecuteNonQuery();
cmd.Dispose();
Run Code Online (Sandbox Code Playgroud)

但是,它会抛出一个SQLException,

"无法打开备份设备'D:\ BookKeeping\Database\11_01_2013_21_15\Database\UserDataTable.bak'.操作系统错误3(无法检索此错误的文本.原因:15105).BACKUP DATABASE异常终止."

任何想法,什么可能是错的?

非常感谢您的时间和帮助.

c# sql-server

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