当前位置:首页 » 编程语言 » sql不允许远程表值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql不允许远程表值

发布时间: 2022-07-15 16:45:07

sql server2008 怎么调用远程函数

如果你的是表值函数(函数的结果是返回表),则考虑使用下面的方法(因为:不允许使用远程表值函数调用)

1select*fromOPENQUERY(a,'SELECT*FROb.dbo.abc(''函数的参数'')')

如果你的函数是返回值的,则没有问题,只是应该使用

1selecta.b.dbo.abc('函数的参数')

<<quote>>http://bbs.csdn.net/topics/250082973<<quote>>

② 如何用SQL语句修改SQLServer“允许远程连接”设置项

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!登陆SQL Server 2008(windows身份认证),登陆后右击,选择“属性”。2左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式。3选择“连接”,勾选“允许远程连接此服务器”,建议将“最大并发连接数”按实际情况,进行设置,然后点“确定”。4展开“安全性”->“登录名”->“sa”,右键选择“属性”。5左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码。选择“状态”,选中“启用”,点击“确定”。右击数据库选择“方面”。在“方面”下接列表框中,选择“服务器配置,“RemoteAccessEnabled”属性和”RemotoDacEnabled”设为“True”,点“确定”。至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用。下面开始配置Sql Server Configuration Manager (SSCM),选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及SQL Server Browser正在运行。打开左侧“SqlServer网络配置”,打开“你自己数据库实例名的协议”,查看右侧的TCP/IP默认是“已禁用”,将其修改为“已启用”。双击打开“TCP/IP”查看“TCP/IP属性”下“协议”选项卡中的“全部侦听”和“已启用”项,是否都是设置成“是”。选择“IP Addersses”选项卡,IP1、IP2、IPAll设置TCP端口为“1433”,TCP动态端口为空值,已启用为“是”。将"客户端协议"的"TCP/IP"也修改为“已启用”。双击打开右侧“TCP/IP”,打开“TCP/IP属性”,将默认端口设为“1433”,已启用为“是”。配置完成,重新启动SQL Server 2008。最后一步,必需要防火墙上把SQL Server 的1433 TCP端口和1434 UDP端口映射出去。,非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!

③ 如何在一条sql语句中连接远程数据库,sql server 2000

建议使用链接服务器

在一条sql语句中连接远程数据库可以使用OpenRowSet函数,下例即在语句中以Jet4.0接口链接了远程数据库Northwind.mdb,其他数据库可参考其接口参数修改。

USE Northwind
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';'admin';'', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO

以下是SQL Server 2005 联机丛书资料,对Sql server 2000 依然有效。

OPENROWSET (Transact-SQL)

包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的临时方法。对于较频繁引用 OLE DB 数据源的情况,请改为使用链接服务器。有关详细信息,请参阅链接服务器。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 访问接口的功能,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,但 OPENROWSET 只返回第一个结果集。

OPENROWSET 还通过内置的 BULK 访问接口支持大容量操作,正是有了该访问接口,才能从文件读取数据并将数据作为行集返回。

Transact-SQL 语法约定

语法

OPENROWSET
( { 'provider_name' , { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file' ,
{ FORMATFILE = 'format_file_path' [ <bulk_options> ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )

<bulk_options> ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE = 'file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH = rows_per_batch ]

参数
' provider_name '
字符串,表示在注册表中指定的 OLE DB 访问接口的友好名称(或 PROGID)。provider_name 没有默认值。

' datasource '
对应于特定 OLE DB 数据源的字符串常量。datasource 是要传递给访问接口的 IDBProperties 接口的 DBPROP_INIT_DATASOURCE 属性,该属性用于初始化访问接口。通常,该字符串包含数据库文件的名称、数据库服务器的名称,或者访问接口能理解的用于定位数据库的名称。

' user_id '
字符串常量,它是传递给指定 OLE DB 访问接口的用户名。user_id 为连接指定安全上下文,并作为 DBPROP_AUTH_USERID 属性传入以初始化访问接口。user_id 不能是 Microsoft Windows 登录名称。

' password '
字符串常量,它是传递给 OLE DB 访问接口的用户密码。在初始化访问接口时,password 作为 DBPROP_AUTH_PASSWORD 属性传入。password 不能是 Microsoft Windows 密码。

' provider_string '
访问接口特定的连接字符串,作为 DBPROP_INIT_PROVIDERSTRING 属性传入以初始化 OLE DB 访问接口。通常 provider_string 封装初始化访问接口所需的所有连接信息。有关 SQL Native Client OLE DB 访问接口可识别的关键字列表,请参阅Initialization and Authorization Properties。

catalog
指定对象所在的目录或数据库的名称。

schema
架构的名称或指定对象的对象所有者名称。

object
对象名,它唯一地标识出将要操作的对象。

' query '
字符串常量,发送到访问接口并由访问接口执行。SQL Server 的本地实例不处理该查询,但处理由访问接口返回的查询结果(传递查询)。有些访问接口并不通过表名而是通过命令语言提供其表格格式数据,将传递查询用于这些访问接口是非常有用的。只要查询访问接口支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持传递查询。有关详细信息,请参阅 SQL Native Client (OLE DB) Reference。

BULK
使用 OPENROWSET 的 BULK 行集访问接口读取文件中的数据。在 SQL Server 2005 中,OPENROWSET 无需将数据文件中的数据加载到目标表,便可读取这些数据。这样便可在单个 SELECT 语句中使用 OPENROWSET。

BULK 选项的参数可对何时开始和结束数据读取、如何处理错误以及如何解释数据提供有效控制。例如,可以指定以类型为 varbinary、varchar 或 nvarchar 的单行单列行集的形式读取数据文件。默认行为详见随后的参数说明。

有关如何使用 BULK 选项的信息,请参阅本主题后面的“备注”部分。有关 BULK 选项所需权限的信息,请参阅本主题后面的“权限”部分。

注意:
当用于以完整恢复模式导入数据时,OPENROWSET (BULK ...) 不优化日志记录。

有关为大容量导入准备数据的信息,请参阅准备用于大容量导出或大容量导入的数据。

' data_file '
数据文件的完整路径,该文件的数据将被复制到目标表中。

FORMATFILE = 'format_file_path'
指定格式化文件的完整路径。SQL Server 2005 支持两种格式化文件类型:XML 和非 XML。

格式化文件对定义结果集中的列类型是必需的。唯一的例外情况是指定 SINGLE_CLOB、SINGLE_BLOB 或 SINGLE_NCLOB 时;在这种情况下,不需要格式化文件。

有关格式化文件的信息,请参阅使用格式化文件大容量导入数据。

< bulk_options >
指定 BULK 选项的一个或多个参数。

CODEPAGE = { 'ACP '| 'OEM '| 'RAW '| 'code_page' }
指定该数据文件中数据的代码页。仅当数据含有字符值大于 127 或小于 32 的 char、varchar 或 text 列时,CODEPAGE 才是适用的。

CODEPAGE 值 说明
ACP
将数据类型为 char、varchar 或 text 的列由 ANSI/Microsoft Windows 代码页 (ISO 1252) 转换为 SQL Server 代码页。

OEM(默认值)
将数据类型为 char、varchar 或 text 的列由系统 OEM 代码页转换为 SQL Server 代码页。

RAW
不执行从一个代码页到另一个代码页的转换。这是执行最快的选项。

code_page
指示编码数据文件中的字符数据所在的源代码页;例如,850。该代码页对 SQL Server 2005 数据库引擎正确解释输入数据是必需的。

ERRORFILE = 'file_name'
指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。这些行将按原样从数据文件复制到此错误文件中。

错误文件在开始执行命令时创建。如果该文件已存在,将引发一个错误。此外,还创建了一个扩展名为 .ERROR.txt 的控制文件。此文件引用错误文件中的每一行并提供错误诊断。纠正错误后即可加载数据。

FIRSTROW = first_row
指定要加载的第一行的行号。默认值为 1,指示指定数据文件的第一行。通过对行终止符进行计数来确定行号。

LASTROW = last_row
指定要加载的最后一行的行号。默认值为 0,指示指定数据文件中的最后一行。

MAXERRORS = maximum_errors
指定格式化文件中定义的、在 OPENROWSET 引发异常之前可以发生的语法错误或格式有误行的最大数目。在达到 MAXERRORS 之前,OPENROWSET 会忽略每个错误行,不加载它,并将其计为一个错误。

maximum_errors 的默认值为 10。

注意:
MAX_ERRORS 不适用于 CHECK 约束,也不适用于 money 和 bigint 数据类型的转换。

ROWS_PER_BATCH = rows_per_batch
指定数据文件中近似的数据行数量。该值应与实际行数相同。

OPENROWSET 始终以单批形式导入数据文件。但如果将 rows_per_batch 的值指定为 > 0,则查询处理器在查询计划中分配资源时将使用 rows_per_batch 的值作为提示。

默认情况下,ROWS_PER_BATCH 未知。指定 ROWS_PER_BATCH = 0 相当于忽略 ROWS_PER_BATCH。

SINGLE_BLOB
将 data_file 的内容作为类型为 varbinary(max) 的单行单列行集返回。

重要提示:
我们建议您仅使用 SINGLE_BLOB 选项(而不是 SINGLE_CLOB 和 SINGLE_NCLOB)导入 XML 数据,因为只有 SINGLE_BLOB 支持所有的 Windows 编码转换。

SINGLE_CLOB
通过以 ASCII 格式读取 data_file,使用当前数据库的排序规则将内容作为类型为 varchar(max) 的单行单列行集返回。

SINGLE_NCLOB
通过以 UNICODE 格式读取 data_file,使用当前数据库的排序规则将内容作为类型为 nvarchar(max) 的单行单列行集返回。

备注
只有在以下情况下才能使用 OPENROWSET 访问 OLE DB 数据源中的远程数据:指定访问接口的 DisallowAdhocAccess 注册表选项已显式设置为 0,并启用了 Ad Hoc Distributed Queries 高级配置选项。如果未设置这些选项,则默认行为不允许即席访问。

访问远程 OLE DB 数据源时,服务器不会自动委托可信连接的登录标识,客户端通过此登录标识才能连接到正在查询的服务器。必须配置身份验证委托。有关详细信息,请参阅为委托配置链接服务器。

如果 OLE DB 访问接口在指定的数据源中支持多个目录和架构,那么就需要目录及架构名称。如果 OLE DB 访问接口并不支持多个目录和架构,那么可以忽略 catalog 和 schema 的值。如果访问接口只支持架构名称,那么必须指定一个格式为 schema.object 的两部分名称。如果访问接口只支持目录名称,那么必须指定一个格式为 catalog.schema.object 的三部分名称。必须为使用 SQL Native Client OLE DB 访问接口的传递查询指定三部分名称。有关详细信息,请参阅 Transact-SQL 语法约定 (Transact-SQL)。

OPENROWSET 不接受参数变量。

使用带有 BULK 选项的 OPENROWSET
以下 Transact-SQL 增强功能支持 OPENROWSET(BULK…) 函数:

与 SELECT 一起使用的 FROM 子句可以调用 OPENROWSET(BULK…) 而非表名,同时可以实现完整的 SELECT 功能。

带有 BULK 选项的 OPENROWSET 在 FROM 子句中需要有一个相关名称,也称为范围变量或别名。可以指定列别名。如果未指定列别名列表,则格式化文件必须具有列名。指定列别名会覆盖格式化文件中的列名,例如:

FROM OPENROWSET(BULK...) AS table_alias

FROM OPENROWSET(BULK...) AS table_alias(column_alias,...n)

SELECT...FROM OPENROWSET(BULK...) 语句将直接查询文件中的数据,无需将数据导入表中。SELECT...FROM OPENROWSET(BULK...) 语句还可以通过使用格式化文件指定列名和数据类型,从而列出大容量列别名。

INSERT...SELECT * FROM OPENROWSET(BULK...) 语句将数据文件中的数据大容量导入 SQL Server 表中。有关详细信息,请参阅使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据。

OPENROWSET BULK 选项与 INSERT 语句一起使用时,BULK 子句支持表提示。除了 TABLOCK 等常规表提示之外,BULK 子句还可以接受下列专用表提示:IGNORE_CONSTRAINTS(仅忽略 CHECK 和 FOREIGN KEY 约束)、IGNORE_TRIGGERS、KEEPDEFAULTS 和 KEEPIDENTITY。有关详细信息,请参阅表提示 (Transact-SQL)。

有关如何使用 INSERT...SELECT * FROM OPENROWSET(BULK...) 语句的信息,请参阅导入和导出大容量数据。有关何时在事务日志中记录由大容量导入执行的行插入操作的信息,请参阅在大容量导入中按最小方式记录日志的前提条件。

注意:
使用 OPENROWSET 时,请务必了解 SQL Server 2005 是如何处理模拟的。有关安全注意事项的信息,请参阅使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据。

大容量导出或导入 SQLXML 文档
若要大容量导出或导入 SQLXML 数据,请在格式化文件中使用下列数据类型之一。

数据类型 效果
SQLCHAR 或 SQLVARYCHAR
在客户端代码页或排序规则隐含的代码页中发送数据。

SQLNCHAR 或 SQLNVARCHAR
以 Unicode 格式发送数据。

SQLBINARY 或 SQLVARYBIN
不经任何转换即发送数据。

权限
OPENROWSET 权限由传递给 OLE DB 访问接口的用户名的权限确定。若要使用 BULK 选项,则需要有 ADMINISTER BULK OPERATIONS 权限。

示例
A. 将 OPENROWSET 用于 SELECT 和 SQL Native Client OLE DB 访问接口
以下示例使用 SQL Native Client OLE DB 访问接口 (SQLNCLI) 访问 HumanResources.Department 表,该表位于远程服务器 Seattle1 上的 AdventureWorks 数据库中。使用 SELECT 语句定义返回的行集。访问接口字符串包含 Server 和 Trusted_Connection 关键字。这些关键字由 SQL Native Client OLE DB 访问接口识别。

复制代码
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks.HumanResources.Department
ORDER BY GroupName, Name') AS a;

B. 使用 Microsoft OLE DB Provider for Jet
以下示例通过 Microsoft OLE DB Provider for Jet 访问 Microsoft Access Northwind 数据库中的 Customers 表。

注意:
该示例假定已经安装了 Access。若要运行该示例,则必须安装 Northwind 数据库。有关如何安装 Northwind 数据库的详细信息,请参阅下载 Northwind 和 pubs 示例数据库。

复制代码
SELECT CustomerID, CompanyName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
'admin';'',Customers)
GO

C. 使用 OPENROWSET 和 INNER JOIN 中的另一个表
以下示例从 SQL Server Northwind 数据库的本地实例中的 Customers 表以及存储在同一计算机上的 Access Northwind 数据库中的 Orders 表选择所有数据。

注意:
该示例假定已经安装了 Access。若要运行该示例,则必须安装 Northwind 数据库。有关如何安装 Northwind 数据库的详细信息,请参阅下载 Northwind 和 pubs 示例数据库。

复制代码
USE Northwind
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';'admin';'', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO

D. 使用 OPENROWSET 将文件数据大容量插入 varbinary(max) 列中
以下示例创建一个用于演示的小型表,并将名为 Text1.txt 的文件(位于 C: 根目录)中的文件数据插入 varbinary(max) 列中。

复制代码
USE AdventureWorks
GO
CREATE TABLE myTable(FileName nvarchar(60),
FileType nvarchar(60), Document varbinary(max))
GO

INSERT INTO myTable(FileName, FileType, Document)
SELECT 'Text1.txt' AS FileName,
'.txt' AS FileType,
* FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document
GO

E. 将 OPENROWSET BULK 访问接口用于格式化文件以检索文本文件中的行
以下示例使用格式化文件检索用制表符分隔的文本文件 values.txt 中的行,该文件包含下列数据:

复制代码
1 Data Item 1
2 Data Item 2
3 Data Item 3

格式化文件 values.fmt 说明 values.txt 中的列:

复制代码
9.0
2
1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_Cp437_BIN
2 SQLCHAR 0 40 "\r\n" 2 Description SQL_Latin1_General_Cp437_BIN

下面的语句是检索此数据的查询:

复制代码
SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt',
FORMATFILE = 'c:\test\values.fmt') AS a;

④ sql2005中,远程连接数据库是表格不能打开出现一个提示,高手请指教下,谢谢了

1、远程连接无法使用服务器名称访问,需要使用服务器ip地址+,+端口号如:10.10.10.1,5122

,中间为半角逗号,如果用默认1433端口,“,端口号”可以省略。
2、登录用户,只能使用sql身份验证。
3、如果是局域网内服务器,还需要路由设备,设置端口转向或者是虚拟服务器:
类似图中的设置,只要设置外部端口,内部端口,内部ip地址。
4、如果是动态ip的宽带,还需要类似花生壳的ip地址转向,主要作用是在公网ip改变时,不需要通知需要连接服务器的用户。
5、服务器上远程登录要打开,在服务器属性页面的连接选项卡中如图:

⑤ mysql默认不支持远程连接,需要grant授权。

GRANT ALL PRIVILEGES ON *.* TO '数据库名'@'%' IDENTIFIED BY '数据库密码' WITH GRANT OPTION;这是应许任何地方远程链接数据库的命令,下面可以设置只应许一个ip链接的实例;GRANT ALL PRIVILEGES ON *.* TO 'yk'@'222.210.228.135' IDENTIFIED BY '1234
56' WITH GRANT OPTION;这是在客户端链接mysql服务器数据库的命令;mysql -h 100.100.100.100 -uroot -ptest我们都习惯了在自己的机子上面安装Mysql,然后用SQLyog等客户端软件来连接,今天试了一下连接远程的mysql数据库服务器,结果弹出一串的英文,意思好像是说客户机没有得到许可,不能访问数据库,在google搜了一下,使用这种方法解决了:
1、进入mysql,创建一个新用户kay:
2、 格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to [email protected] identified by "kaypass";
3、 查看结果,执行:
use mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的kay用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
将host字段的值改为%就表示在任何客户端机器上能以kay用户登录到mysql服务器,建议在开发时设为%。
update user set host = '%' where user = 'kay';
还有一下方法:(我没有试,仅供参考):
A、 ./mysqladmin -uroot -p21century reload
./mysqladmin -uroot -p21century shutdown
B、./mysqld_safe --user-root &
记住:对授权表的任何修改都需要重新reload,即执行第3步。 如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在mysql数据库的db表中插入一条记录:
use mysql;
insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
重复执行上面的第2、3步。 http://hi..com/dandankai/blog/item/c59d5d0eba1ddfc27acbe1d2.html

⑥ SQL远程连接不上服务器

远程连接sql server 2000服务器的解决方案
步骤:
一 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。
二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
如果这一步有问题,应该检查以下选项。
1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单-程序-Microsoft SQL Server-服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。
3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。
4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。
5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
三 检查客户端设置
程序-Microsoft SQL Server - 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。
四 在企业管理器里或查询那分析器连接测试
企业管理器-右键SQlserver组-新建sqlserver注册-下一步-写入远程IP-下一步-选Sqlserver登陆-下一步-写入登陆名与密码(sa,password)-下一步-下一步-完成
查询分析器-文件-连接-写入远程IP-写入登录名和密码(sa,password)-确定
通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。
修改默认连接超时的方法:
企业管理器-工具-选项-在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡-连接设置-在 登录超时(秒) 后面的框里输入一个较大的数字
查询分析器-工具-选项-连接-在 登录超时(秒) 后面的框里输入一个较大的数字
通常就可以连通了,如果提示错误,则进入下一步。
五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
3 在"身份验证"下,选择"SQL Server和 Windows "。
4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。
答案补充
SQLServer 2005 :
要允许远程连接SQL Server 2005 ,需要完成以下步骤:
在SQLServer 实例上启用远程连接。 打开服务器 SQLBrowser 服务。配置防火墙以允许SQLBrowser 服务和SQLServer服务网络通信。
在SQLServer 实例上启用远程连接
1.指向“开始-程序-Microsoft SQL Server 2005-配置工具-SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”, 再选择要使用的协议,单击“应用”,您会看到下消息:“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止, 然后单击“启动”,重新启动MSSQLSERVER 服务。
答案补充
启用 SQLServer 浏览器服务
1.指向“开始-程序-Microsoft SQL Server 2005-配置工具-SQL Server 外围应用配置器”;2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”;3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,再单击“启动”,单击“确定”按钮返回.
在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”;2.在“添加程序窗口”中单击“浏览”;3.然后找到“C:ProgramFilesMicrosoft FilesMicrosoft SQL Server MSSQL.1 MSSQLBinnsqlservr.exe”,单击“确定”返回,注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。4.对每个需要打开远程访问的SQL 实例,重复1-3。
答案补充
在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”;2.在“添加程序窗口”中单击“浏览”;3.然后找到“C:ProgramFilesMicrosoft FilesMicrosoft SQL Server90Sharedsqlbrowser.exe”,单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同

⑦ SQL 存储过程调用异地数据库 存储过程或表

EXEC @s_procere1 @dt_bdate,@dt_edate,@dt_bindate,@dt_eindate,@s_line,@s_bus,@s_driver

这句应该是写成动态SQL语句。

exec ( @s_procere1 + @dt_bdate + ', ' + @dt_edate + ',' + @dt_bindate + ',' @dt_eindate + ',' + @s_line + ',' + @s_bus + ',' + @s_driver )

因为,你取到得存储过程名称是一个字符串,所以要把这个串和相应的参数组成一个大串,然后用动态SQL执行的方法执行。

⑧ 怎么设置sql2008允许远程访问

登陆SQL Server 2008(windows身份认证),登陆后右击,选择“属性”。 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式。 选择“连接”,勾选“允许远程连接此服务器”,建议将“最大并发连接数”按实际情况,进行设置,然后点“确定”。 “安全性”->“登录名”->“sa”,右键选择“属性”。 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码。 选择“状态”,选中“启用”,点击“确定”。 右击数据库选择“方面”。 在“方面”下接列表框中,选择“服务器配置,“RemoteAccessEnabled”属性和”RemotoDacEnabled”设为“True”,点“确定”。至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用。 下面开始配置Sql Server Configuration Manager (SSCM),选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及SQL Server Browser正在运行。 打开左侧“SqlServer网络配置”,打开“你自己数据库实例名的协议”,查看右侧的TCP/IP默认是“已禁用”,将其修改为“已启用”。 双击打开“TCP/IP”查看“TCP/IP属性”下“协议”选项卡中的“全部侦听”和“已启用”项,是否都是设置成“是”。 选择“IP Addersses”选项卡,IP1、IP2、IPAll设置TCP端口为“1433”,TCP动态端口为空值,已启用为“是”。 将"客户端协议"的"TCP/IP"也修改为“已启用”。 双击打开右侧“TCP/IP”,打开“TCP/IP属性”,将默认端口设为“1433”,已启用为“是”。配置完成,重新启动SQL Server 2008。 最后一步,必需要防火墙上把SQL Server 的1433 TCP端口和1434 UDP端口映射出去。