2009-03-03 70 views
5

我寫了SQL語句(存儲在文本文檔中),它將數據加載到SQL Server數據庫中。這些陳述需要每天重複。一些語句使用NewId()函數來填充數據庫中的鍵控字段,並且這可以正常工作。雖然我正在編寫應用程序來複制這些語句,但我希望使用Access查詢和宏,而不是將查詢複製並粘貼到SQL Server中,從而每天爲我節省時間。所有工作正常,但我找不到任何功能,將取代SQL NewId()函數。有人存在還是存在解決方法?我正在使用SQL Server 2005和Access 2007.是否存在與SQL Server NewId()函數相同的Access?

+0

「複製和粘貼查詢到SQL服務器,從而節省了我的時間每天都在」。你可能會驚訝你可以在SQL Server中做些什麼來節省你的時間。 – 2014-01-19 01:43:55

回答

-2

我能想到的唯一解決方法是在類型爲「複製ID」的訪問數據庫中定義列並將其設置爲自動編號字段。這將自動爲每一行生成一個唯一的GUID,並且根本不需要使用newid()。在SQL服務器中,您只需爲列「newid()」設置默認值即可。

+0

GUID在Access中不能正常工作:http://trigeminal.com/usenet/usenet011.asp?1033。但它們不是必需的 - 只需要一個自動編號。 – 2009-03-04 04:55:35

1

在matt的回答中,您可以簡單地使用pass-through query,並使用您現有的來自MS Access的查詢。

-2

再次,這裏似乎有困惑。

如果我的理解正確:

您有一個Access前端。

您有一個SQL Server 2005後端。

您需要的是能夠在SQL Server表中生成GUID。所以,答案建議在Access中添加一個類型爲ReplicationID的AutoNumber字段不會有幫助,因爲該表不是Jet表,而是SQL Server表。

SQL當然可以作爲傳遞查詢來執行,它將把所有事情交給SQL Server進行處理,但是我想知道爲什麼SQL Server中沒有這個字段的默認值? SQL Server 2005表可以不具有NewId()作爲默認值嗎?還是有其他的方法有一個字段填充一個新的GUID?我似乎想起了一些關於使用GUID並將其標記爲「不適用於複製」的內容(目前我無權訪問SQL Server查看此內容)。

對我來說,最好讓數據庫引擎做這樣的事情,而不是在你的SQL中執行一個函數來做,但也許有人可以啓發我爲什麼我錯了。

相關問題