谷歌搜索了一段时间没有答案....任何人都可以帮忙吗?
只需双击解决方案资源管理器,我就不能再在VS 2012中打开.sql文件了.我收到错误消息:
无法在自定义编辑器中打开Transact-SQL文件
我强烈怀疑这是在昨天为SQL Server 2012 Express安装SP1之后,作为Windows更新的一部分.错误对话框为我提供了获取最新版本的SQL Server数据工具的链接,但该链接仅产生在MSDN上找不到的页面.
回到过去,我曾经写过这样的select语句:
SELECT
table1.columnA, table2.columnA
FROM
table1, table2
WHERE
table1.columnA = 'Some value'
Run Code Online (Sandbox Code Playgroud)
但是我被告知在"FROM"子句中使用逗号分隔的表名称与ANSI92不兼容.应始终有一个JOIN语句.
这导致了我的问题....我想对两个表之间的数据进行比较,但两个表中没有用于创建连接的公共字段.如果我在FROM子句中使用逗号分隔的表名的"遗留"方法(参见代码示例),那么它的工作完全正常.如果被认为是错误的或不好的做法,我会感到不舒服.
谁知道在这种情况下该怎么做?
额外信息:
表1包含"地理"数据类型中的位置列表表2包含不同的"地理位置"列表
我正在写select语句来比较位置之间的距离.到目前为止,我知道你不能在地理专栏上加入?
我正在研究使用新的SQL Server Express LocalDB(我认为它是名为"Denali"的代码)用于桌面应用程序.
它目前与SQL Compact一起运行,但用户希望在网络上的多台PC之间共享数据库.不幸的是,这不是SQL Compact可以做的事情,因此我正在研究其他解决方案.
客户端需要能够轻松地将数据库文件发送到其他站点或将它们备份到闪存磁盘,因此我避免使用SQL Express,因为备份和还原需要相当多的"管理员"知识.
所以,我的问题是,新的SQL Express LocalDB是否支持通过网络和/或通过其中包含mdf文件的共享网络文件夹与数据库进行远程连接?
LocalDB支持在其连接字符串(AttachDbFileName)中为附加的本地数据库提供路径,因此支持共享网络文件夹选项.
注意:此问题适用于"LocalDB"SQL Express"Denali"的新版本,而不适用于SQL Server Express 2008或更早版本.请参阅此处宣布LocalDB发布的文章:http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx
我写了两个存储过程一个sp_executesql和其他没有sp_executesql都正确执行相同的结果,我没有得到这里有什么区别
EXEC(@SQL)vs EXEC sp_executesql @SQL,N'@ eStatus varchar(12)',@ eStatus = @Status
以及EXEC(@SQL)如何易于SQL注入和sp_executesql @SQL ......不是吗?
在没有sp_executesql的存储过程下面
ALTER proc USP_GetEmpByStatus
(
@Status varchar(12)
)
AS
BEGIN
DECLARE @TableName AS sysname = 'Employee'
Declare @Columns as sysname = '*'
DECLARE @SQL as nvarchar(128) = 'select ' + @Columns + ' from ' + @TableName + ' where Status=' + char(39) + @Status + char(39)
print (@SQL)
EXEC (@SQL)
END
EXEC USP_GetEmpByStatus 'Active'
Run Code Online (Sandbox Code Playgroud)
下面是sp_executesql的存储过程
create proc USP_GetEmpByStatusWithSpExcute
(
@Status varchar(12)
)
AS
BEGIN …Run Code Online (Sandbox Code Playgroud) sql sql-server stored-procedures sql-server-2008 sql-server-2012
在调试中使用我的项目我没有问题.但是在IIS中运行它我收到此错误:
System.Data.SqlClient.SqlException:用户'domain \name-PC $'登录失败.
堆栈跟踪
[SqlException (0x80131904): Login failed for user 'CAPLUGSLLC\OETINGER-PC$'.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6749670
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +815
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +4515
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +84
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +53
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +368
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) …Run Code Online (Sandbox Code Playgroud) 我想在Entity Framework中使用SQL Server sequence对象在将数据保存到数据库之前显示数字序列.
在当前场景中,我正在通过在存储过程中增加一个(存储在一个表中的先前值)并将该值传递给C#代码来执行相关操作.
为了实现这一点,我需要一个表,但现在我想将它转换为一个sequence对象(它会给它带来任何好处吗?).
我知道如何在SQL Server中创建序列并获取下一个值.
但我想知道如何sequence在Entity Framework中获取SQL Server的下一个对象值?
我无法在SO 中的相关问题中找到有用的答案.
提前致谢.
我有一个小项目,在一台计算机上有1个用户.数据库相当小(可能少于1 MB的数据).我计划为该项目使用WPF和Entity Framework.
我为我的项目提出了2个潜在的数据库解决方案:SQL Server CE和SQL Server Express LocalDB(使用SQL Server 2012).我从未使用过任何这些,我更习惯使用完整的SQL Server 2008安装.
我也希望它很容易安装在客户端上.理想情况下,我想将一堆文件放在一个文件夹上(以及我的.exe文件).
那么这里有人可以建议我使用最好的技术吗?
谢谢!
sql-server entity-framework sql-server-express sql-server-ce sql-server-2012
当我点击"对象资源管理器"中的"数据库"节点时,它只是继续"加载项目",直到它在某个时刻它只是挂起.
这仅在连接到远程服务器时发生,而不是在访问PC上的数据库时发生.
任何其他节点也不会发生这种情况.
网络托管公司的员工没有遇到任何麻烦.(但他们正在运行2008,那里的SQL服务器也是如此)
我重新安装了整个SQL服务器等但无济于事.
可能是什么问题?
下面是我想要帮助的代码.我不得不运行超过1,300,000行,这意味着插入~300,000行需要40分钟.
我认为批量插入是加速它的路线?或者是因为我通过for data in reader:部分迭代行?
#Opens the prepped csv file
with open (os.path.join(newpath,outfile), 'r') as f:
#hooks csv reader to file
reader = csv.reader(f)
#pulls out the columns (which match the SQL table)
columns = next(reader)
#trims any extra spaces
columns = [x.strip(' ') for x in columns]
#starts SQL statement
query = 'bulk insert into SpikeData123({0}) values ({1})'
#puts column names in SQL query 'query'
query = query.format(','.join(columns), ','.join('?' * len(columns)))
print 'Query is: %s' …Run Code Online (Sandbox Code Playgroud) sql-server-2012 ×10
sql-server ×8
sql ×5
c# ×2
bulkinsert ×1
database ×1
iis ×1
orm ×1
pyodbc ×1
python ×1
ssms ×1